Android打包会有多个ABI的问题

  • Creator 版本: 2.4.4

  • 目标平台: Android

  • 手机型号: 小米8

  • 原先正常的情况:gradle3.2.0,tools.build 5.6.4

您好,我遇到的问题是生成的apk中的lib文件夹内有多个ABI
QQ图片20210408111738
我在接入一个第三方SDK的时候,做了如下改动之后打包出现了问题
因报错:无法识别标签
我将gradle的tools:build 从3.2.0提升至了3.3.3,并将gradle提升至了对应的4.10.3版本
然后报错:提示方法引用数量超过了64K
我就在build.gradle中的defaultConfig设置了multiDexEnabled 为 true,并在dependencies中添加了
implementation ‘com.android.support:multidex:1.+’
然后可以顺利打包了。

但是一跑起来就闪退,Logcat显示
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.lkgame.xddzoppo.nearme.gamecenter-DXfcJaXI_3tTArXHENdzFw==/base.apk”],nativeLibraryDirectories=[/data/app/com.lkgame.xddzoppo.nearme.gamecenter-DXfcJaXI_3tTArXHENdzFw==/lib/arm64, /data/app/com.lkgame.xddzoppo.nearme.gamecenter-DXfcJaXI_3tTArXHENdzFw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]]
couldn’t find “libcocos2djs.so”
有博客说是因为包里有多个ABI导致的,我也发现之前成功运行的包里只有我选择的armeabi-v7a

我并没有做过这方面的修改,在搜索之后也没有得到可行的解决办法,所以来论坛请求帮助。

在app目录的build.gradle里面添加

ndk{
abiFilters “armeabi-v7a”
}

(defaultConfig标签里面)

1赞

嗯,我之前有查到过这个。但是我看自动生成里的
有abiFilters.addAll(PROP_APP_ABI.split(’:’).collect{it as String})
而PROP_APP_ABI 就是等于 armeabi-v7a的。

以为没用,试了一下发现是有用的 = =。

感谢~