gpt4 book ai didi

android - Gradle 构建工具 1.5.0 不包括 .so 文件

转载 作者:行者123 更新时间:2023-11-29 01:24:43 25 4
gpt4 key购买 nike

我正在使用一个依赖于共享对象文件 ex 的库。 libName.so,过去我只是将 libName.so 文件与我分发的 jar 打包在一起。现在通过将 gradle 版本从 1.3.1 更新到 1.5.0,

classpath 'com.android.tools.build:gradle:1.5.0' // 1.3.1 -> 1.5.0

我的库中的这些 .so 文件不再添加到应用程序中我的库所依赖的应用程序的 .apk 文件中。对于库(例如 jar),.so 文件是否位于 assets、libs 或 jniLibs 文件夹中似乎并不重要。

提取引用我的依赖项生成的 apk:

例如

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.x:library_with_folder_containing_so_files:version'
}

之前(Gradle 1.3.1) Gradle v1.3.1

之后(Gradle 1.5.0) Gradle v1.5.0

似乎如果您有非共享对象的文件,则生成 APK 时它们不会被删除。想知道 v1.5.0 是否有我似乎找不到的新政策,或者我是否做错了什么。

最佳答案

要解决此问题,请不要从 Assets 文件夹加载 native 库。相反,如果您将库添加到具有相同文件夹结构的另一个名为 lib 的文件夹,gradle 构建将不会删除 native 库。

例。新的jar文件结构

lib
- armeabi
- libLibraryName.so
- x86
- libLibraryName.so
- mips
- libLibraryName.so

如果您的 native 库以这种方式打包到您的 jar 文件中,您还应该能够调用 System.loadLibrary("LibraryName")。

关于android - Gradle 构建工具 1.5.0 不包括 .so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com