android so文件打不上问题之一记录

       在Android Studio 升级到4.2.1后(有可能是这个问题),导致打包的时候提示“Entry name 'classes.dex' collided”。
       之后百度的结果好些说是加上下面这句话(也就是so文件没有打包进去的原因):

android {
        ...
        packagingOptions {
            exclude 'classes.dex'
            exclude '**.**'  //这个也要添加哦
        }
}

       但是忽略了他们说的上一句话:“删除app/build 和app/release目录下所有apks,或直接删除两个目录下所有文件,再编译生成apk。”

       因为项目集成了友盟推送,里面涉及到了lib下面的so库。在某一天发现友盟报错了:onFailure: =-11 accs bindapp error, 就是so库没有了。
       原因就是加上了packagingOptions这个配置,去掉就好了。这时候会报刚开始的错(Entry name 'classes.dex' collided),删除app/build 和app/release目录下所有apks就好了。

通过“Analyze Apk...”对app-debug.apk分析后,下面是加上上面这句话和不加的区别:


图1
图2

       图2中画红框的就是丢失的文件,其中lib文件夹里面放的就是so库文件,可以说整个都丢失了。所以上面那句packagingOptions加的时候一定要慎重!!!

你可能感兴趣的:(android so文件打不上问题之一记录)