Библиотека 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 . Кто-нибудь сталкивался с этим вопросом раньше?

Solutions Collecting From Web of "Библиотека NoClassDefFoundError для каллиграфии"

Если вы поддерживаете уровни 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' 

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