[問題] 要怎麼使用和ASOP一起編出來的.so檔

看板AndroidDev作者 (小新)時間13年前 (2012/08/12 18:34), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/5 (看更多)
大家好 目前想要實作螢幕截圖的app 上網找到了http://ppt.cc/la~2 這個範例 我將他的JNI資料夾裡面的.cpp .h 和 Android.mk 放到android source code裡面的external/screencap資料夾 然後用mm去編(我事先有先編好整個android system了,版本是2.3.3_r1) 也編出了一個libscrcap.so在out/target/product/generic/system/lib/裡 然後我將這個libscrcap.so檔複製到我的eclipse下新開的project裡的libs/armeabi/裡 然後將範例的java檔放到project裡面,manifest權限也有照範例加了 但是我沒有將Android.mk放到project裡面 就這樣我把apk裝到平板上測試 當我按下button sendBroadcast之後 Receiver就會跳錯 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檔呢?? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.156.58

08/12 20:15, , 1F
你這個.so檔也有放在平板電腦裡的 system/lib 裡?
08/12 20:15, 1F

08/13 15:55, , 2F
沒有耶 有辦法放在自己的資料夾裡面讀嗎??
08/13 15:55, 2F

08/13 16:17, , 3F
有root的話,應該能adb remount, adb push進去吧
08/13 16:17, 3F

08/13 17:10, , 4F
我放進去了,但是他還是顯示一樣的錯誤
08/13 17:10, 4F
文章代碼(AID): #1G9uR9ds (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1G9uR9ds (AndroidDev)