作者iincho (世界的盡頭)
看板AndroidDev
標題Re: [問題] 要怎麼使用和ASOP一起編出來的.so檔
時間Mon Aug 13 16:04:41 2012
※ 引述《Shihsuang (小新)》之銘言:
: D/dalvikvm(2076): Trying to load lib
: /data/data/com.cust.android.screencap/lib/libscrcap.so 0x410ce038
: W/dalvikvm(2076): Exception Ljava/lang/UnsatisfiedLinkError; thrown while
: initializing Lcom/cust/android/screencap/ScreenCap;
: E/AndroidRuntime(2076): FATAL EXCEPTION: main
: E/AndroidRuntime(2076): java.lang.ExceptionInInitializerError
: ........(中間略).........
: E/AndroidRuntime(2076): Caused by: java.lang.UnsatisfiedLinkError: Cannot
: load library: reloc_library[1285]:88 cannot locate
: '_ZN7android16ISurfaceComposer11asInterfaceERKNS_2spINS_7IBinderEEE'...
: E/AndroidRuntime(2076): at java.lang.Runtime.loadLibrary(Runtime.java:370)
: E/AndroidRuntime(2076): at java.lang.System.loadLibrary(System.java:535)
: E/AndroidRuntime(2076): at
: com.cust.android.screencap.ScreenCap.<clinit>(ScreenCap.java:16)
: E/AndroidRuntime(2076): ... 12 more
: 我的平板也有root過,但是不知道該怎麼去要求root權限
: 我試過用Runtime.getRuntime().exec("su")放在onReceive()裡
: 但是會跳一樣的錯
: 想請問該如何才能讓他load到那個.so檔呢??
: 謝謝!!
你要用這個.so的Java class有加上LoadLibrary嗎?
public class foo{
static {
System.loadLibrary("Lib_name_without_so");
}
}
另外這隻程式看起並不需要root,因為他是直接向surfaceflinger
要資料。
--
Beware of bugs in the above code;
I have only proved it correct, not tried it.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.193.107
推 Shihsuang:我有加System.loadLibrary,看起來是在load的時候跳錯的 08/14 18:04
→ Shihsuang:另外我執行的環境是TF101 android 4.0.3 08/14 18:05
→ Shihsuang:當初我在編譯的時候,有用過android4.0.1編過,但是跳出 08/14 18:06
→ Shihsuang:error: undefined reference to android::ISurfaceCompo 08/14 18:07
→ Shihsuang:ser::asInterface(android::sp<android::IBinder> const 08/14 18:07
→ Shihsuang:&)這個錯誤 跟執行時的錯誤好像是同樣原因?? 08/14 18:08