作者Shihsuang (小新)
看板AndroidDev
标题[问题] 要怎麽使用和ASOP一起编出来的.so档
时间Sun Aug 12 18:34:46 2012
大家好
目前想要实作萤幕截图的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
1F:推 Assyla:你这个.so档也有放在平板电脑里的 system/lib 里? 08/12 20:15
2F:→ Shihsuang:没有耶 有办法放在自己的资料夹里面读吗?? 08/13 15:55
3F:→ Assyla:有root的话,应该能adb remount, adb push进去吧 08/13 16:17
4F:→ Shihsuang:我放进去了,但是他还是显示一样的错误 08/13 17:10