2011-10-12 67 views
2

我編譯了一個Android的JNI庫,NDK與我使用這個項目編譯的libcrypto.a靜態鏈接,https://github.com/fries/android-external-openssl動態鏈接libdl.so。無法加載,但無法加載在android 2.1上的庫,但可以在2.2 +

即使NDKs平臺/ Android的X /弓臂/ usr/lib目錄有一個libdl.so爲Android的每個版本,當我嘗試加載在Android 2.1出現以下錯誤我的圖書館:

Trying to load lib /data/data/package.name/lib/libmylibrary.so 0x44e83a28 
Unable to dlopen(/data/data/package.name/lib/libmylibrary.so): Cannot load library: reloc_library[1244]: 30 cannot locate 'dladdr'... 

,然後繼續與UnsatisfiedLinkError崩潰,但我2.2+本地庫的鏈接和完美的作品

對什麼是發生在我身上或如何解決它的任何想法?

回答

2

因此而尋找到這個問題,我已經發現,而在Android的提供dladdr的所有版本存在libdl()加入到C庫在2.2

的NDK changes.html的相關線路如下:

- C Library changes: 

For android-8 (a.k.a. Android 2.2): 
    - add DL_info and dladdr(). 
+0

您是如何解決這個問題的?這是否意味着使用2.2+? – jgoldberg

+0

是的,我只需要使用2.2+ –

相關問題