After adding compile 'com.android.support:support-v13:21.0.+'
to build.gradle
, I had some conflicts on building my app, so I had to add multiDexEnabled = true to defaultConfig
inside build.gradle
. Those conflict are gone, but i got another exception (on opening the app) for the missing calligraphy library:
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)
My latest sdk build tools version is 22.0.1
. Has anybody faced this issue before?
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 ie
@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()
);
}
是的,更新到multidex 1.0.2并将Mulitidex.install(this)添加到类扩展应用程序
MultiDex.install(this);
这可以解决问题。
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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.