- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为 Android 6 及更高版本创建了一个旧版应用。我需要包含一些为“armeabi”架构构建的 .so 文件。我没有这些共享对象的源代码,所以我无法为其他架构构建它们。
目标设备的架构是“armeabi-v7a”和“arm64-v8a”。两种设备都可以运行“armeabi”的 native 二进制文件,我已经用 adb ( How to find ARM processor version on android device? ) 对此进行了测试。
.so 文件在“/app/src/main/jniLibs/armeabi/****.so”中,但我在运行时收到“JNI:不满意的链接错误”,所以它没有使用它们.
我如何强制设备使用这些文件,尽管它们没有针对运行时进行优化,但却是我唯一可以访问的文件。
感谢您的帮助。
我使用 Android Studio 2021,Gradle 7,minSdkVersion 21,targetSdkVersion 31,compileSdkVersion 31
最佳答案
终于解决了这个问题!经过几天的绝望,我通过将 Gradle 从 7.1.2 降级到 3.2.0 来让它工作。
旧的 Gradle 版本日志:
由于缺少 ABI“ARMEABI”的剥离工具,无法剥离库“.....\app\build\intermediates\transforms\mergeJniLibs\debug\0\lib\armeabi\lib.so”。按原样打包。
然后所有设备,包括 64 位设备,选择“armeabi”库。
通过在 app\build.gradle 中设置 android.defaultConfig.ndk { abiFilters 'armeabi' }
,它也适用于 Gradle 7。
关于android - 如何在其他架构上使用 "armeabi".so 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71510146/
我是一名优秀的程序员,十分优秀!