簡體   English   中英

findLibrary返回null Android NDK

[英]findLibrary returned null Android NDK

我正在嘗試使用Android NDK。 第一步,我嘗試與android示例中的hello-jni做相同的事情。 我在項目下創建了jni文件夾,並放置了hello-jni.c,Android.mk,Application.mk。 我使用ndk-build構建了c文件。 它在libs目錄和arm *目錄對下建立並放置.so文件。 但是當我使用

static {
        System.loadLibrary("hello-jni");
    }

在我的活動中,我越來越

10-22 22:58:12.248 2291-2291/? E/AndroidRuntime: java.lang.UnsatisfiedLinkError: Couldn't load hello-jni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.clinicloud.app.ndktestapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.clinicloud.app.ndktestapp-1, /system/lib]]]: findLibrary returned null
10-22 22:58:12.248 2291-2291/? E/AndroidRuntime:     at java.lang.Runtime.loadLibrary(Runtime.java:355)
10-22 22:58:12.248 2291-2291/? E/AndroidRuntime:     at java.lang.System.loadLibrary(System.java:525)
10-22 22:58:12.248 2291-2291/? E/AndroidRuntime:     at com.clinicloud.app.ndktestapp.MainActivity.<clinit>(MainActivity.java:56)
10-22 22:58:12.248 2291-2291/? E/AndroidRuntime:     at java.lang.Class.newInstanceImpl(Native Method)

我的Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)

我的Application.mk文件包括

APP_ABI := all

.so文件名為libhello-jni.so

有人可以幫我解決這個問題嗎? 謝謝。

更新

我通過將以下代碼放入build.gradle中來解決此問題。

sourceSets.main {
        jniLibs.srcDir 'libs'
    }

確保已編譯libhello-jni.so並將其放置在項目中的/ libs / [ARCH]下。 您還可以解壓縮apk並查看該庫是否存在。

暫無
暫無

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

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