[英]Getting “findLibrary returned null” error in Android-NDK project
我放棄了在Android-NDK
項目中解決findLibrary returned null
錯誤的問題。 這是項目結構:
|_JNI
|_libsample.so (pre-compiled)
|_libsample2.so (pre-compiled)
|_Application.mk
|_Android.mk
|_libs
|_X86
|_libsample.so
|_libsample2.so
Android.mk
來源:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libsample
LOCAL_SRC_FILES := libsample.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libsample2
LOCAL_SRC_FILES := libsample2.so
include $(PREBUILT_SHARED_LIBRARY)
Application.mk
來源:
APP_ABI := x86
bashrc
文件中的環境變量已正確設置。 ndk path
在Eclipse中的位置是正確的。
每當我嘗試加載Shared_library
時,都會出現以下錯誤:
06-06 09:33:36.088: E/AndroidRuntime(1100): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load fona from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.example.fona-1.apk,libraryPath=/data/app-lib/com.example.fona-1]: findLibrary returned null
在MainActivity.java
加載共享庫的源:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.loadLibrary("libsample");
..
....
.....
我在這里做錯了什么? 我在這里找到了幾個類似的問題,但是嘗試了所有方法。 什么都沒用:(
在MainActivity.java
加載共享庫的源:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.loadLibrary("sample");
..
....
.....
您應該加載“ sample”而不是libsample ...
我也不是很確定,您應該使用x86作為體系結構,除非這是針對android-x86的(例如在virutablbox上...)
此外,您可以檢查自己的庫是否包含在apk中!
確保將生成的庫安裝在apk中。 為此,請右鍵單擊Eclipse項目名稱,然后進入Build Path-Configure Build Path,在左側菜單上,選擇Java Build Path,然后單擊右側面板上的Order and Export選項卡,在選中復選框之前您的庫名稱,然后單擊確定,然后清理,重建並運行您的項目。 正如Nicolas指出的那樣,加載Sample而不是libsample。 創建AVD時,選擇x86作為TARGET。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.