赞
踩
把跑通的项目换了一个设备运行,竟然一下出了458个error(s)…..初学者的我感觉很难受
从第一个error开始是Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
去网上查了查,大佬给出了建议:
第一步:修改Gradle配置文件,启用MultiDex并包含MultiDex支持:
defaultConfig {
multiDexEnabled true
}
dependencies { compile 'com.Android.support:multidex:1.0.1' }
第二步:让应用支持多DEX文件。在MultiDexApplication JavaDoc中提供了三种可选方法:
a、在AndroidManifest.xml的application中声明android.support.multidex.MultiDexApplication;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
b、如果你已经有自己的Application类,让其继承MultiDexApplication;
c、如果你的Application类已经继承自其它类,你不想修改它,那么可以重写attachBaseContext()方法:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base); MultiDex.install(this);
}
但是第一步我就会报错,一直不能引入这个support 包,后来发现是因为Android plugin Gradle版本低于1.1,解决办法是添加 以下依赖 multidex-instrumentation :
dependencies {
androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
exclude group: 'com.android.support', module: 'multidex'
}
}
第二步三种方法都尝试了因为报错未成功,但此时error已经减少到了1个
Error:Executionfailedfortask’:app:transformClassesWithJarMergingForDebug’.> com.android.build.api.transform.TransformException: java.util.zip.ZipException:duplicateentry:com/google/gson/JsonNull.class
出现这问题有可能是api的版本太低和缓存问题,我clean了一个工程还是这样。。
嗯,File-Settings-Apprearance&Beheavior-System Settings-Android SDK升级一下SDK的版本。并没有什么用。。。还是5个。。
然后检查了一下Module Settings里面的Version都匹配。。
最后我检查了color.xml和style.xml里的引用方法都没有错。。。想了半天。
原来是常见的jar包冲突。。可以下一个jar包冲突检测工具,我检测了没有完全重复的冲突。
可以用ctrl+N然后检测jsonnull发现了两个冲突的类,把其中一个删掉就可以啦~~哇,真的如释重负
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。