Intereting Posts

Библиотека NoClassDefFoundError для каллиграфии

После добавления compile 'com.android.support:support-v13:21.0.+' в build.gradle меня возникли конфликты при создании моего приложения, поэтому мне пришлось добавить multiDexEnabled = true в defaultConfig внутри build.gradle . Эти конфликты исчезли, но у меня есть другое исключение (при открытии приложения) для недостающей библиотеки каллиграфии:

 java.lang.NoClassDefFoundError: uk.co.chrisjenx.calligraphy.R$attr at uk.co.chrisjenx.calligraphy.CalligraphyConfig$Builder.<init>(CalligraphyConfig.java:150) at com.taxiyaab.android.util.ApplicationClass.onCreate(ApplicationClass.java:120) at newapp.com.taxiyaab.taxiyaab.PassengerApplication.onCreate(PassengerApplication.java:68) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4462) at android.app.ActivityThread.access$1500(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1306) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:212) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) at dalvik.system.NativeStart.main(Native Method) 

Моя последняя версия инструментов для сборки sdk – 22.0.1 . Кто-нибудь сталкивался с этим вопросом раньше?

Если вы поддерживаете уровни API до 21 года, ваш класс Application должен расширять MultiDexApplication из библиотеки поддержки.

 class MyApplication extends MultiDexApplication 

Если у вас нет настраиваемого класса Application , то вы должны добавить класс MultiDexApplication в свой манифест напрямую

 <application android:name="android.support.multidex.MultiDexApplication"> </application> 

См. https://developer.android.com/tools/building/multidex.html.

Если ваше приложение выходит из приложения, то переопределите attachBaseContext внутри приложения, т.е.

 @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 

Также необходимо добавить зависимость

 compile 'com.android.support:multidex:1.0.1' 

Goodlife здесь снова на помощь. Добавьте эту строку в ur Java-файл, который расширяет приложение.

  public void onCreate() { super.onCreate(); mInstance = this; //ADD MULTIDEX.INSTALL(THIS) SOLVED MY SIMILAR PROBLEM MultiDex.install(this); CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("fonts/Roboto-Regular.ttf") .setFontAttrId(R.attr.fontPath) .build() ); } 

MultiDex.install(this);

Это может решить проблему.

То, что я сделал, слишком обновляло библиотеку компиляции в файле уровня градиента уровня приложения.

 compile 'com.android.support:multidex:1.0.0' 

Я тоже его обновил

 compile 'com.android.support:multidex:1.0.1' 

И это сработало для меня. Может быть, это помогает кому-то.