打包Multiple dex files define Landroid/support/v4问题解决

android studio 打包的时候报错:

Error:Execution failed for task ':app:transformClassesWithDexForRelease'.

> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

开始以为是不同包引入重复冲突了,各种exclude,如下,然并卵,还是一样报错

compile ('com.android.support:recyclerview-v7:+'){
        exclude module: 'support-v4'
    }


设置GRADLE_HOME环境变量和path,具体地址可查看android studio -- file --setting 搜gradle


命令行执行gradle -v正常的话

到项目路径执行gradle -q app:dependencies 或到app module下执行gradle -q dependencies查看依赖树

还是然并卵,甚至没有看到v4的包路径


最后发现其实是引用工程libs目录下有一个android-support-v4.jar包,通过

compile fileTree(include: '*.jar', dir: 'libs')来引入v4包的,把这个jar包删除,
改为gradle引入 compile 'com.android.support:support-v4:24.1.1'
问题解决,可能是gradle引入的gradle才能自动解决重复的包,而通过jar包引入的gradle处理不了


你可能感兴趣的:(android)