Android Studio / Gradle没有在APK中打包名为“ mylib.so.1”的共享库。

时间:2018-11-03 06:48:08

标签: android-studio android-ndk

我需要将名为“ mylib.so.1”的共享库打包到APK中,但是显然gradle无法识别“ .so.1”扩展名,只有“ .so”,并且在运行时我需要名为“ .so”的库。 so.1“,以避免链接器错误。所有库都位于src / main / jniLibs / $ {ANDROID_ABI}中。

2 个答案:

答案 0 :(得分:1)

您需要使后缀完全为 .so 。因此,删除多余的 .1

答案 1 :(得分:0)

我能够通过

将版本化的.so文件添加为资源来进行打包
sourceSets.main {
    resources.srcDir 'src/main/external'
}
android的{​​{1}}块内

。或者,可以使用app.gradle

这会将指定路径上的所有文件复制到包的根目录,因此必须将源库放置在resources.srcDirs += ['src/main/whatever']等处,然后才能将它们复制到{{ 1}}或src/main/external/lib/armeabi-v7a/libsomething.so.1.2.3

除了具有讽刺意味的是,它似乎并没有复制假定为库的文件(即与* .so匹配的文件,也可能与其他匹配的文件)。因此,您必须将.so放在/lib/armeabi-v7a/libsomething.so.1.2.3中。