NoClassDefFoundError on Calligraphy library

跟風遠走 提交于 2019-11-30 11:31:07

If you support API levels under 21, your Application class should extend MultiDexApplication from the support library.

class MyApplication extends MultiDexApplication

If you do not have a custom Application class, than you should add the MultiDexApplication class to your manifest directly

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

See https://developer.android.com/tools/building/multidex.html

If your application extends from Application then override attachBaseContext inside Application i.e

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

Also need to add dependency

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

Goodlife is here again to the rescue . Add this line to ur java file that extends application.

 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()
    );
}

Yes,update to multidex 1.0.2 and add Mulitidex.install(this) to the class extending application

MultiDex.install(this);

This can fix the problem.

What i did was too update the compiling library in app level gradle file.

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

I updated it too

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

and it worked fine for me. Maybe this helps someone.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!