http://blog.csdn.net/jscese/article/details/12184513#comments 转载
当需要调试的apk 的AndroidManifest.xml中有使用 android:sharedUserId="android.uid.system" ,表示此apk和系统拥有相同的uid,可以共享系统资源,可以加入同一进程中。但是要使用eclipse编译adb安装调试安装 肯定会报错,如下: [html] view plain copy print? Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE Please check logcat output for more details. Launch canceled! 关于android的签名机制,可以参考Android——编译release版签名系统。 因为eclipse生成的apk签名与system不同,android系统规定使用相同uid的必须拥有相同的签名。 我所使用的方法是写一个脚本,在eclipse生成apk之后给这个apk重签名,然后再launch安装。 step 1:配置签名环境 拷贝 源码 /build/target/product/security/下的 platform.pk8 和 platform.x509.pem 到 out/host/linux-x86/framework、 在out/host/linux-x86/framework下执行: [html] view plain copy print? java -jar signapk.jar platform.x509.pem platform.pk8 $sourceapk $apkname $sourceapk为需要签名的apk路径,$apkname为签名成功之后的apk。 step 2:调试配置 最好写一个shell脚本,执行上面的操作,在eclipse中做如下设置: 1):编译直接生成apk 去掉 Skip packaging and dexing until export or launch..... 2):配置eclipse external tool RUN——>External Tools——>External Tools Configurations new 一个program 选择写好的 signed 脚本 再在 window——>preferences——>General——>Key 配置快捷键 F10 作为 clean-bulid F11作为external tool F12作为run debug 。 至此 OK~~