Gradle build(高版本到低版本)遇到的错误总结

把跑通的项目换了一个设备运行,竟然一下出了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;

"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    

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发现了两个冲突的类,把其中一个删掉就可以啦~~哇,真的如释重负

你可能感兴趣的:(Gradle build(高版本到低版本)遇到的错误总结)