【问题标题】:Including *.so files with gradle and Android Studio 1.2.2包含带有 gradle 和 Android Studio 1.2.2 的 *.so 文件
【发布时间】:2015-07-21 19:15:30
【问题描述】:

有人可以指导我正确放置 *.so 文件应该存放在 gradle/android 项目的位置吗?

我有它们:

project->app->src->main->jniLibs

assets、java 和 res 文件夹在 main 中也是它的兄弟,但在构建 APK 时它们似乎不包含在内,导致“UnsatisfiedLinkError”

编辑

我看过:

Include .so library in apk in android studio

并尝试将导演更改为 libs 和 lib,但没有成功。

更新 1

  • 反编译的 APK 现在显示 /Lib 下的 *.so 文件,我将它们放在 project -> app -> src -> main -> jniLibs -> armeabi 下,这就是它们的架构 但是 从本机库中调用方法时,我收到 UnsatisfiedLinkError,尽管它似乎通过了静态构造函数中的 System.loadLibrary 调用而没有显示错误

【问题讨论】:

  • app->src->main-jniLibs-a 文件夹,随便命名->.so 文件
  • 所以反编译的apk显示/lib/armeabi中的so文件,但仍然出现链接错误
  • 确切的消息是:'没有找到 int 的实现...'
  • 编译 C++ 代码后,我的 .so 文件被放置在 src -> main -> libs -> {plattform} 中。平台取决于您的 .so 编译的平台。可能的值可能是:armeabi-v7a、armeabi、mips、x86、arm64-v8a
  • 正确,它们是 armeabi。我也试过 src->main->libs-> aremabi。问题已经发生了变化...我将在上面更新...似乎 *.so 文件现在包含在 /Lib 下的 APK 中,但是从本机库调用方法会引发 UnsatisfiedLink 异常,即使它似乎加载了System.loadLibrary 没有遇到问题

标签: android gradle java-native-interface


【解决方案1】:

*.so 文件现在包含并显示在反编译的 APK 中...遇到了我在此处发布的另一个问题:UnsatisfiedLinkError when calling method from native library although System.loadLibrary seems ok

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 2016-02-10
    • 2016-08-19
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多