Je tente de construire un projet Android (ndk-build). J'aimerais utiliser une bibliothèque précompilée dans mon projet. (Libdemo.so)Essayez de charger précompilé .so Android NDK (Exception java.lang.UnsatisfiedLinkError: dlopen failed: library)
Android.mk:
APP_STL := gnustl_static
APP_CPPFLAGS := -fexceptions
APP_ABI=armeabi armeabi-v7a
Application.mk:
LOCAL_PATH := $(call my-dir)
TARGET_ARCH_ABI := armeabi-v7a
include $(CLEAR_VARS)
LOCAL_MODULE := libdemo
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libdemo.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := native-lib
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_SHARED_LIBRARIES := libdemo
include $(BUILD_SHARED_LIBRARY)
MainActivity:
android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("demo");
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.sample_text);
Log.d("TAG", stringFromJNI());
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
}
Mais je reçois l'exception suivante sur la construction:
java.lang.UnsatisfiedLinkError: dlopen failed: library "/Users/John/Documents/Apps/LibTest/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libdemo.so" not found
Le fichier existe sur le chemin fourni. Je pense que le chemin n'est pas correct du tout. Pourquoi y a-t-il le chemin depuis mon ordinateur de bureau? Il devrait y avoir un chemin de mon appareil ou?
Toute personne ici pour vous aider? Merci