transformDexArchiveWithExternalLibsDexMergerForDebug 问题的完美定位[转载]

– double Shift:全局查找,这个查看和Alt+H稍稍有些不同,这个是全局文件查找,到文件名称层面。

exclude 剔除掉多余的包

场景一



要移除的jar包不在aar包中的classes.jar中

直接把aar包里的Jar打包的时候给去掉,就像下面这这样。注意,要使用exclude module这种方式,直接使用exclude group方式没有效果。exclude group的方法适用于exclude JAR包中的文件。

    implementation(name: '×××××××aar包', ext: 'aar') {
        exclude module: 'gson'
    }

场景二



要移除的jar包在aar包中的classes.jar中

这个时候,使用exclude方法已经不能生效了。你可以使用下面的通用方法

解压aar文件到tmpDir目录下 
unzip ×××.aar -d tmpDir
找到classes.jar包,用压缩工具打开,删除目标文件
将tmpDir重新打包成一个新的aar 
jar cvf ×××NewLib.aar -C tmpDir/
补充:我在Ubuntu下直接使用压缩工具打开aar包,然后删除其中的重复的文件,这个方法也是可行的。

3,在需要v4包的地方exclude掉annotation包,注意compile要多加个括号:



compile ('com.android.support:support-v4:22.1.0'){exclude module: 'support-annotations'}

猜你喜欢

转载自blog.csdn.net/stimgo/article/details/81561572