1、将android 2.3的settings源码放在eclipse下编译,导入隐藏api
2、调试完毕没有红叉
3、卸载虚拟机中自带的setting应用(删除app,adb uninstall com.android.settings)
4、接下来出现无法安装eclipse里面的setting app,adb install安装报如下错误
“INSTALL_FAILED_SHARED_USER_INCOMPATIBLE”
5、删除ecipse中setting配置文件中内容
删掉AndroidManifest.xml类中android:sharedUserId="android.uid.system"> 语句
6、再次安装,成功.可以用eclipse的debug调试程序
7、进入setting->应用程序->管理应用程序,会报错,如下:
W/dalvikvm( 504): threadid=9: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 504): FATAL EXCEPTION: ApplicationsState.Loader
E/AndroidRuntime( 504): java.lang.SecurityException: Neither user 10033 nor current process has android.permission.GET_PACKAGE_SIZE.
E/AndroidRuntime( 504): at android.os.Parcel.readException(Parcel.java:1322)
E/AndroidRuntime( 504): at android.os.Parcel.readException(Parcel.java:1276)
E/AndroidRuntime( 504): at android.content.pm.IPackageManager$Stub$Proxy.getPackageSizeInfo(IPackageManager.java:2402)
E/AndroidRuntime( 504): at android.app.ContextImpl$ApplicationPackageManager.getPackageSizeInfo(ContextImpl.java:2575)
E/AndroidRuntime( 504): at com.android.settings.applications.ApplicationsState$BackgroundHandler.handleMessage(ApplicationsState.java:787)
E/AndroidRuntime( 504): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 504): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 504): at android.os.HandlerThread.run(HandlerThread.java:60)
W/ActivityManager( 62): Force finishing activity com.android.settings/.ManageApplications
8、在AndroidManifest.xml类中加入如下权限
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
9、从新调试,程序恢复正常