0

jni を使用した Java プロジェクトがあり、ネイティブ部分は正常に動作します。dlopen() を使用して、jni c ファイル内からビルド済み (ndk を使用してビルド) の .so ファイルをロードする必要があります。

しかし、次の dlerror が表示されます: ライブラリを読み込めません: load_library[1093]: "system/lib/mytestlib.so" Library not found

JNI コード:

void* handle = dlopen("system/lib/mytestlib.so", RTLD_LAZY);
if(handle == NULL)
{
        char* er = dlerror();
        __android_log_print(ANDROID_LOG_DEBUG, TAG, "dlerror: %s", er);
}

面白いことに、電話の /system/lib フォルダーから他のビルド済みライブラリをロードしようとすると、エラーなしでロードされます。また、問題なく fopen で .so を開くこともできるので、パスは正しいです。それが私のライブラリにのみ起こっているという事実は、本当に私を悩ませています。助けてくれてありがとう。

4

1 に答える 1