2015-02-17 1 views
2

У меня странная ошибка добавления нового модуля (https://github.com/lomza/android-color-picker) в мой проект. Без этого модуля проекта работает нормально, но если добавить этот проект в качестве модуля в мой основной проект и скомпилировать его - все выглядит хорошо, но приложение запускается и сила закрывается мгновенно дает мне эту ошибку:java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB ошибка при добавлении нового модуля в Android Studio

FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB 
      at android.support.v4.app.NavUtils$NavUtilsImplJB.getParentActivityName(NavUtils.java:125) 
      at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:302) 
      at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:281) 
      at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:142) 
      at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) 
      at app.user.views.ActivityWelcome.onCreate(ActivityWelcome.java:33) 
      at android.app.Activity.performCreate(Activity.java:5133) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
      at android.app.ActivityThread.access$600(ActivityThread.java:141) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5103) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
      at dalvik.system.NativeStart.main(Native Method) 

ActivityWelcome.java 33 линия super.onCreate(savedInstanceState);

Если я удалю этот модуль из проекта - все снова будет отлично. У меня такая же проблема с добавлением нового модуля в мой проект. В чем проблема?

EDIT: Я выяснил, что проект отлично работает на API 21, но если я запустил его на API 18, я получаю ошибку.

+0

Относительно? https://code.google.com/p/android/issues/detail?id=72931 –

ответ

7

Я нашел решение этой проблемы. Я использую multidexing и он доступен только в Lolipop устройств, так, чтобы использовать его в предварительно Lolipop устройств мне нужно добавить эту строку

compile 'com.android.support:multidex:1.0.0' в build.gradle файл

и это одна линия android:name="android.support.multidex.MultiDexApplication" к AndroidManifest.xml в <appplication тег.

Для меня - теперь все работает нормально.

EDIT: вместо добавления строки в android:name в манифесте, вы можете добавить multiDexEnabled = true в gradle файл в defaultConfig.

1

Основываясь на трассировке стека, я бы сильно заподозрил проблему с несоответствиями версии библиотеки поддержки. Например, похоже, что библиотека android-color-picker опирается на довольно устаревшую версию библиотеки поддержки (обновленную более года назад). Возможно, ваш основной проект использует более новую версию библиотеки поддержки? Чтобы избежать этого сбоя, я рекомендовал бы переконфигурировать библиотеку-подборщик Android для использования той же версии библиотеки поддержки, которую вы используете в другом месте вашего проекта.

+0

Да, я знаю об этом. Первое, что я сделал после импорта библиотеки, - это конфигурация файла buiild.gradle 'android-color-picker'. Я изменил версию поддерживающей библиотеки так же, как и проект, но это не решает проблему. – Eddwhis

+0

Здравствуйте, я нашел проблему. Это было связано с мультисайсированием и не с выбором цвета. Отправил это как ответ. – Eddwhis