【问题标题】:How can I implement JniLibs in android studio如何在 android studio 中实现 JniLibs
【发布时间】:2015-12-01 07:08:05
【问题描述】:

我想在我的应用程序中使用 JniLibs。我在 app/src/main 下添加了一个文件夹 jniLibs。 jniLibs 文件夹包含 armeabi、armeabi-v7a、x86,这些文件夹包含 .so 文件。

我在 build.gradle 文件中编写了以下代码:

sourceSets.main {
    jniLibs.srcDir 'libs'
    jni.srcDirs = [] //disable automatic ndk-build call
}

当我运行我的应用程序时说:没有找到本机的实现。

我是在 android studio 中实现 jniLibs 的新手,你能帮帮我吗?非常感谢您的帮助。

【问题讨论】:

标签: android android-ndk


【解决方案1】:

jni 的名称是什么:“jni”或“jniLibs”?你需要添加:

sourceSets.main {
    jni.srcDirs = []
    jniLibs.srcDir 'src/main/<name jni folder>'
}

如果你有c文件你需要编译它:http://ph0b.com/new-android-studio-ndk-support/

【讨论】:

  • 我在 app/libs 文件夹中复制了 armeabi、armeabi-v7a、x86 文件夹,并在 app.js 中为 jni 库创建了一个新文件夹。现在我只遇到一个问题:没有找到本机方法的实现。我已经探索过它并按照建议做了同样的事情,但问题仍然存在。如果您有任何想法,请提供帮助。
  • 请将 jni 文件夹复制到主文件夹下,并按照我显示的方式添加到 build.gradle(在 android 组中)
  • 我做了同样的事情,但仍然无法工作:(我需要添加其他任何东西来支持 jniLibs 吗?
  • 我已经从这个库 github.com/madhur/android-chat-starter 复制了我的 jni 库文件,当我在 android studio 中运行此代码时,相同的代码在这里工作,但在我的应用程序中不工作。同样的错误:没有找到本地方法的实现。
  • 复制的jni文件夹是c文件,需要setup编译。你说的.so文件呢?
【解决方案2】:

删除源集行。你不需要它。因为它已经被定义为默认值了。

创建一个目录到你的

模块(例如app)-> src -> main -> jniLibs

你可以把你的 .so 文件放到那个文件夹里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多