1

SOとGoogleですべての質問を見ましたが、まだ運がありません。

アプリケーションで使用する必要があるビルド済みの静的ライブラリ libdroid.a が与えられました。

Android.mk を使用して jni フォルダーに入れてみました

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libdroid
LOCAL_LDLIBS := libdroid.a
include $(PREBUILT_STATIC_LIBRARY)

そしてそれをJavaのように呼び出す

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

     public static native int droidCall(int num1, int num2);

しかし、アプリケーションを実行すると、

java.lang.UnsatisfiedLinkError: Couldn't load droid: findLibrary returned null

JNIフォルダーに入ることが想定されていないためだと思いますか?しかし、私は obj と libs フォルダーでも試しました。

4

1 に答える 1

2

*.so事前に構築された静的ライブラリから必要な関数を呼び出す独自の共有ライブラリ()を作成する必要があります。.so次に、このライブラリをロードしてSystem.loadLibrary、そのネイティブ関数を使用します

于 2012-07-17T19:25:01.193 に答える