WedX - журнал о программировании и компьютерных науках

NoClassDefFoundError: com.microsoft.windowsazure.mobileservices.MobileServiceAuthenticationProvider

Я делаю приложение для Android, которое будет аутентифицировать пользователя в активном каталоге. В настоящее время я следую руководству по https://www.windowsazure.com/en-us/documentation/articles/mobile-services-android-get-started-users/.

На данный момент мне нужно только аутентифицировать пользователя. Итак, я сделал следующее: -

import com.microsoft.windowsazure.mobileservices.MobileServiceApplication;
import com.microsoft.windowsazure.mobileservices.MobileServiceAuthenticationProvider;
import com.microsoft.windowsazure.mobileservices.MobileServiceClient;
import com.microsoft.windowsazure.mobileservices.MobileServiceUser;
import com.microsoft.windowsazure.mobileservices.ServiceFilterResponse;
import com.microsoft.windowsazure.mobileservices.UserAuthenticationCallback;

    public static MobileServiceClient mobileServiceClient;
    public MobileServiceUser _user;
    MobileServiceClient mCLient;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        web = (WebView)findViewById(R.id.webSignin);


        web.getSettings().setJavaScriptEnabled(true);
        web.loadUrl("https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rpsnv=2&ct=1390811289&rver=6%2E1%2E6206%2E0&wp=MBI&wreply=https%3A%2F%2Fwww7679%2Esharepoint%2Ecom%2F%5Flayouts%2F15%2Flanding%2Easpx%3FSource%3Dhttps%253A%252F%252Fzevenseascom%252D11%252Esharepoint%252Eemea%252Emicrosoftonline%252Ecom%252F%255Fforms%252Fdefault%252Easpx&lc=16393&id=500046&guests=1");


        authenticate();



    }

    private void authenticate()
    {
        // TODO Auto-generated method stub
        mCLient.login(MobileServiceAuthenticationProvider.Google, new UserAuthenticationCallback()
        {

            @Override
            public void onCompleted(MobileServiceUser user, Exception exception,
                    ServiceFilterResponse response) 
            {
                // TODO Auto-generated method stub
                if(exception == null)
                {
                    createAndShowDialog(String.format("You are now logged in - %1$2s", user.getUserId()),"Success");
                    Intent myIntent = new Intent(MainActivity.this, Directory.class);
                    startActivity(myIntent);

                }
                else
                {
                     createAndShowDialog("You must log in. Login Required", "Error");
                }
            }
        });
    }

Но я получаю следующую ошибку: -

java.lang.NoClassDefFoundError: com.microsoft.windowsazure.mobileservices.MobileServiceAuthenticationProvider
01-28 10:34:04.732: E/AndroidRuntime(2150):     at com.example.activedirectory.MainActivity.authenticate(MainActivity.java:68)

Любая помощь приветствуется


  • Пожалуйста, убедитесь, что вы добавили правильную библиотеку 28.01.2014
  • @ Джек Дуонг Спасибо за ответ. Но не могли бы вы уточнить, поскольку я новичок в аутентификации Windows Azure 28.01.2014
  • У вас есть правильные операторы импорта 28.01.2014
  • Если у вас есть библиотека, проверьте проект -> свойства -> проверьте свою библиотеку, пересоберите 28.01.2014
  • @JackDuong У меня есть моя библиотека в проекте, и я попытался очистить-› перестроить. Но все та же проблема. Приложение даже не запускается 28.01.2014
  • Ошибка NoClassDefFoundError возникает, когда не удается найти правильную библиотеку, не могли бы вы показать мне эту библиотеку? 28.01.2014
  • @JackDuong Я попробовал решение Krrishnaaaa. Ошибка, кажется, устранена, но теперь я получаю другую ошибку 01-28 11:21:49.716: E/AndroidRuntime(4704): Caused by: java.lang.NullPointerException 01-28 11:21:49.716: E/AndroidRuntime(4704): at com.example.activedirectory.MainActivity.authenticate(MainActivity.java:68) 01-28 11:21:49.716: E/AndroidRuntime(4704): at com.example.activedirectory.MainActivity.onCreate(MainActivity.java:50) 28.01.2014
  • Инициируйте для MobileServiceClient mCLient; Вы просто объявляете, а не инициализируете. Возможно, это mClient = new MobileServiceClient(...); 28.01.2014
  • @JackDuong Я инициализировал mCLient с URL-адресом и идентификатором моего приложения. Теперь я получаю сообщение об ошибке: -01-28 11:56:50.974: E/AndroidRuntime(6793): java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder 01-28 11:56:50.974: E/AndroidRuntime(6793): at com.microsoft.windowsazure.mobileservices.MobileServiceClient.createMobileServiceGsonBuilder(MobileServiceClient.java:136) 01-28 11:56:50.974: E/AndroidRuntime(6793): at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServiceClient.java:187) 28.01.2014
  • Вы должны загрузить и добавить эту библиотеку: code.google.com/p/google- gson/загрузки/список 28.01.2014
  • @JackDuong Сделал это. Спасибо. Можете ли вы дать ответ, чтобы я мог принять его 28.01.2014
  • давайте продолжим это обсуждение в чате 28.01.2014
  • Добро пожаловать. Пожалуйста, примите это, чтобы помочь другим людям, которые получают ту же ошибку. 28.01.2014

Ответы:


1

Пожалуйста, инициируйте для MobileServiceClient mCLient; Вы просто объявляете, а не инициализируете. Может быть это

mClient = new MobileServiceClient(...); 

И с ошибкой:

    -01-28 11:56:50.974: E/AndroidRuntime(6793): 
java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder 01-28 11:56:50.974: E/AndroidRuntime(6793): at com.microsoft.windowsazure.mobileservices.MobileServiceClient.createMobileServic‌​eGsonBuilder(MobileServiceClient.java:136) 01-28 11:56:50.974: 
E/AndroidRuntime(6793): at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServi‌​ceClient.java:187)

просто добавьте библиотеку: GSON

28.01.2014

2

Пробовали ли вы это решение.
Project Properties>Java Build Path>Order and Import tab и проверьте libraries, которое вы используете.

Похоже, что обновление ADT 22, вам нужно сделать это вручную: Библиотеки больше не добавляются в APK после обновления до ADT 22.

28.01.2014
  • Я пытался это сделать. Как уже упоминалось, моя библиотека не была проверена. Я отметил это, а затем попытался запустить приложение, но все та же ошибка 28.01.2014
  • Я решил эту ошибку. Но теперь я получаю эту ошибку 01-28 11:21:49.716: E/AndroidRuntime(4704): Caused by: java.lang.NullPointerException 01-28 11:21:49.716: E/AndroidRuntime(4704): at com.example.activedirectory.MainActivity.authenticate(MainActivity.java:68) 01-28 11:21:49.716: E/AndroidRuntime(4704): at com.example.activedirectory.MainActivity.onCreate(MainActivity.java:50) 28.01.2014
  • Вы не инициализировали mClient, поэтому получаете NullPointerException 28.01.2014
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]