簡體   English   中英

Android NDK - 找不到庫

[英]Android NDK - Library not found

我使用Android Studio和Android NDK。 我的文件夾“src / main / jni”包含以下文件:

  • Android.mk
  • Application.mk
  • HelloWorld.cpp

Application.mk APP_ABI := all

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorld
LOCAL_SRC_FILES := HelloWorld.cpp
include $(BUILD_SHARED_LIBRARY)

在我的Java代碼中,我加載了庫:

static{
    System.load("HelloWorld");
}

我運行ndk-build如下所示,它運行沒有錯誤: ndk-build -C src/main

build.gradle包含:

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

libHelloWorld.so被編譯並復制到文件夾: app\\src\\main\\libs\\arm*\\

app-debug.apk的根目錄包含一個lib目錄。 libHelloWorld.so存在於所有子目錄中(lib \\ arm *)

當我在LG Nexus 4設備上部署和調試應用程序時,出現以下錯誤:

9-24 18:50:51.486  20352-20352/ndk.tests.firstndk E/art﹕ dlopen("HelloWorld", RTLD_LAZY) failed: dlopen failed: library "HelloWorld" not found
09-24 18:50:51.489  20352-20352/ndk.tests.firstndk D/AndroidRuntime﹕ Shutting down VM
09-24 18:50:51.491  20352-20352/ndk.tests.firstndk E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: ndk.tests.firstndk, PID: 20352
java.lang.UnsatisfiedLinkError: dlopen failed: library "HelloWorld" not found
at java.lang.Runtime.load(Runtime.java:331)
at java.lang.System.load(System.java:981)
at ndk.tests.firstndk.MainActivity.<clinit>(MainActivity.java:11)
at java.lang.reflect.Constructor.newInstance(Native Method)

你能幫忙解決這個問題嗎? 為什么我的本機lib無法加載? 我的配置有什么問題?

嘗試:

static{
    System.loadLibrary("HelloWorld");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM