启用 renderscript 使应用程序忽略 jniLibs
Enabling of renderscript makes app to ignore jniLibs
我想使用一些 jni 库。所以我像这样放置二进制文件:
project
-app
--jnilibs
---armeabi
----libqwerty.so
在我的 build.gradle(应用程序模块)中:
sourceSets.main {
jniLibs.srcDirs = ['jniLibs']
}
它按预期工作,但是当我将渲染脚本添加到我的项目时:
renderscriptTargetApi 22
renderscriptSupportModeEnabled true
应用程序不再看到我的 jniLibs 目录。而getApplicationInfo().nativeLibraryDir
的内容是:[libRSSupport.so, librsjni.so]
更新: 好的,我只需将目录 armeabi
重命名为 armeabi-v7a
即可解决此问题。但是,如果我想支持其他一些 cpu 架构怎么办?
请参阅 Google 开发人员的 answer:Arm v6 不支持渲染脚本库,他们没有计划将它们移植回来。对于 x86、MIPS 和 64 位版本,Gradle 会自动将适当的 RS 二进制文件添加到您的 APK。
我想使用一些 jni 库。所以我像这样放置二进制文件:
project
-app
--jnilibs
---armeabi
----libqwerty.so
在我的 build.gradle(应用程序模块)中:
sourceSets.main {
jniLibs.srcDirs = ['jniLibs']
}
它按预期工作,但是当我将渲染脚本添加到我的项目时:
renderscriptTargetApi 22
renderscriptSupportModeEnabled true
应用程序不再看到我的 jniLibs 目录。而getApplicationInfo().nativeLibraryDir
的内容是:[libRSSupport.so, librsjni.so]
更新: 好的,我只需将目录 armeabi
重命名为 armeabi-v7a
即可解决此问题。但是,如果我想支持其他一些 cpu 架构怎么办?
请参阅 Google 开发人员的 answer:Arm v6 不支持渲染脚本库,他们没有计划将它们移植回来。对于 x86、MIPS 和 64 位版本,Gradle 会自动将适当的 RS 二进制文件添加到您的 APK。