【问题标题】:How to add prebuilt .so library in android studio 0.8.6如何在 android studio 0.8.6 中添加预建的 .so 库
【发布时间】:2014-09-08 13:05:50
【问题描述】:

我会得到的错误是

Couldn't load json from loader dalvik.system.PathClassLoader[DexPathList[dexElements=[zip file "/data/app/com.uei.tools.ndktest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.uei.tools.ndktest-1, /vendor/lib, /system/lib]]]: findLibrary returned null

我创建了一个包含所有 .so 文件的 zip 文件,并添加到 app 文件夹下的 libs 文件夹中,我从模块设置依赖项中添加了 jar 依赖项。

所有搜索结果都是旧版本 android studio 的示例代码,但没有 Android studio 0.8.6 beta 的示例

【问题讨论】:

  • “我创建了一个包含所有 .so 文件的 zip 文件”也许这是 Android Studio 的一个奇怪功能,但通常您会将 individual .so 文件放在适当的 ABI 中libs 目录的子目录。

标签: android android-ndk android-studio


【解决方案1】:

使用 Android Studio 0.8.x,您可以直接在每个 ABI 对应的文件夹内的 jniLibs 文件夹下添加预构建的 .so 文件。例如:

  • app/src/main/jniLibs/armeabi-v7a/libMyLib.so
  • app/src/main/jniLibs/x86/libMyLib.so

您可以在本页底部找到最新示例:http://tools.android.com/tech-docs/new-build-system#sites-attachments

【讨论】:

  • 当我创建一个项目时,如果我手动创建 jniLibs 目录将不会被创建,这将不起作用。如何在主目录下创建jniLibs文件夹?
  • 链接中的示例是旧的 gradle 版本,它们最高为 0.9 版本,但当前版本是 2.0 如何继续?
  • 当前版本不是 2.0。 Android Studio 最高支持 gradle 1.12,并且示例与此版本兼容。您必须从 Android Studio 手动创建 jniLibs 目录:右键单击源文件夹->新文件夹
  • 在该程序运行后,我添加了一个名为 jniLibs 的文件夹,但库 dint 加载了命令 Systm.loadlibrary("some_library") 返回未定义和程序结束并不幸显示程序停止。
  • 您可以通过将此 APK 作为 zip 文件打开来查看打包在 APK 中的内容。 jniLibs 中的库应该包含在lib 文件夹中。如果不是这样,请发布您的 build.gradle 文件和您的项目结构(目录列表、模块列表..)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多