我试图关注Diane Hackborn的request:
对于允许应用程序为root的权限,可以 添加框架的权限 < ...取代。但是,仍然必须如此 某种共享库(即使是 它是应用程序的存根 请求以及包裹 经理不应该允许 申请获得此权限,除非 他们还要求共享库。
所以我使用了sdk的TicTacToe示例:
使用以下行添加/system/etc/permissions/com.example.android.tictactoe.library.xml:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<library name="com.example.android.tictactoe.library"
file="/data/app/TTTLib.jar" />
</permissions>
编译com.example.android.tictactoe.MainActivity,方法是添加一个指向库的类文件夹,但不将库本身添加到.apk
它编译,安装,开始运行,但是当一个库类被调用崩溃时出现错误信息:
W/dalvikvm( 464): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime( 464): FATAL EXCEPTION: main
E/AndroidRuntime( 464): java.lang.NoClassDefFoundError: com.example.android.tictactoe.library.GameActivity
E/AndroidRuntime( 464): at com.example.android.tictactoe.MainActivity.startGame(MainActivity.java:51)
E/A
我想念什么?谢谢你的帮助。
答案 0 :(得分:3)
在AndroidManifest.xml中,您必须输入库依赖项,例如
<uses-library android:name="com.example.android.tictactoe.library"/>
此外,我认为您必须在将jar内容上传到设备之前对其进行DEX,类似于将scala库上传到设备。 见http://lampwww.epfl.ch/~michelou/android/emulator-android-sdk.html和 http://lampwww.epfl.ch/~michelou/android/android-examples-in-scala/android-sdk.zip 用于将jar dexes到dexed jar的脚本:) 希望它确实有意义。
检查android-sdk.zip中的bin / createdexlibs
基本上它应该像
~/android-sdks/platform-tools/dx --dex --output=TTTLib.jar TTLLib_input.jar