eclipse编译出来的apk,安装时报出INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的错误。

原因:apk的AndroidManifest.xml中声明了android:sharedUserId="android.uid.system",但没有相应的签名

解决方案:

1. 找到编译目标系统时的签名证书platform.pk8和platform.x509.pem,在android源码目录build\target\product\security下。

没有那两个证书的话,就别指望用system用户了,赶紧地把android:sharedUserId="android.uid.system"声明删掉,不过删掉之后有些动作可能就没权限执行了。

2. 将签名工具(signapk.jar)、签名证书(platform.pk8和platform.x509.pem)及编译出来的apk文件都放到同一目录

3.执行签名命令:

signapk.jar  platform.x509.pem  platform.pk8 Demo.apk signedDemo.apk

4.将signedDemo.apk安装即可

类似地,在android源码树编译也会存在同样的问题,解决方法类似。

或直接把目标系统的签名证书platform.pk8和platform.x509.pem(根据android.mk文件的LOCAL_CERTIFICATE 定义,也可能是shared.pk8、media.pk8等)覆盖到build\target\product\security也可,这样就不需要再手工签名了。INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的问题

signapk.rar工具下载

摘自:http://blog.csdn.net/download821106/article/details/8551850

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的问题的更多相关文章

  1. 暂且解决INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误

    有时候我们在APK安装时由于工程制定了UID,换过签名后可能出现 类似 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 或 INSTALL_FAILED_UPDATE_ ...

  2. INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误解决

    Target device: smartisan-yq601-3fa1a5dcInstalling APK: /Users/wangliang/workspace/emm-android/build/ ...

  3. Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]

    在Android studio中想要运行程序,点击运行后程序安装失败,报出如下异常: 原因:在manifest中设置了 .android:sharedUserId="android.uid. ...

  4. 分享一个常用Adb命令

    分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...

  5. 将packages/apps/下的app导入eclipse

    当刚接触android自带的一个模块时,如何去熟悉它?相信不少人第一步都会尝试着去了解其内容的调用流程,而此时若能够单步调试则显得非常重要了,于是有了文章标题所说的尝试. 作者这里要导入的是Setti ...

  6. Android通过编码实现GPS开关

    在Android 2.2以后才可使用 import android.content.ContentResolver; import android.content.Context; import an ...

  7. Android中的sharedUserId属性详解

    在Android里面每个app都有一个唯一的linux user ID,则这样权限就被设置成该应用程序的文件只对该用户可见,只对该应用程序自身可见,而我们可以使他们对其他的应用程序可见,这会使我们用到 ...

  8. Android中@id与@+id区别

    Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...

  9. bug_ _ 应用汇==常见错误列表

    应用汇的安装功能是基于安卓系统的adb开发的,adb的安装过程分为传输与安装两步.在出错后,助手会在右下角弹出详细的错误编号及建议. 下面列举出几种常见的错误及解决方法. Q1:无效的安装包,安装包已 ...

随机推荐

  1. JMeter学习(十四)jmeter_断言使用

    先说一下使用断言的目的:在request的返回层面增加一层判断机制.因为request成功了,并不代表结果一定正确.类似于QTP中的检查点检查点.断言的使用方法: step_1:在你选择的Sample ...

  2. 第三篇:Spark SQL Catalyst源码分析之Analyzer

    /** Spark SQL源码分析系列文章*/ 前面几篇文章讲解了Spark SQL的核心执行流程和Spark SQL的Catalyst框架的Sql Parser是怎样接受用户输入sql,经过解析生成 ...

  3. IT行业的一些专业术语

    SDK:SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 参考:h ...

  4. LeetCode第[66]题(Java):Plus One

    题目:数组加一 难度:Easy 题目内容:   Given a non-empty array of digits representing a non-negative integer, plus ...

  5. Python Falling back to the 'python' engine because the 'c' engine does not support regex separators

    环境 Anaconda3 Python 3.6, Window 64bit 书籍 O'Reilly出版的Wes McKinney编的<Python for Data Analysis> 警 ...

  6. angular-messages.js信息验证的使用

    ngMessages(1.3+) 众所周知,表单和验证是Angular中复杂的组件之一.上面的例子不是特别好,不简洁.在Angular 1.3发布前,表单验证必须以这种方式编写.然而在发布的Angul ...

  7. golang采坑记 一(http与json)

    http服务端在把json串写入http.ResponseWriter对象的时候我们常用的方式如下: //方法一: func ...(w http.ResponseWriter, r *http.Re ...

  8. zabbix原理

    数据采集-->数据存储-->数据展示和分析-->报警 数据采集 SNMP agent ICMP/ssh/IPMT数据存储: cacti:rrd nagios:无数据库.mysql z ...

  9. UICollectionView-网格视图

    1. UICollectionView 网格视图,除了提供与UITableView同样的功能显示一组顺序显示的数据,还支持多列的布局. 2. UICollectionView 使用 > 设置Co ...

  10. C++静态数据成员实现

    静态数据成员是在一个类中用关键字static声明的数据成员.在C++中,一般使用静态成员来代替C语言的全局变量,以达到数据共享.C和C++的全局变量有一定的局限性,可以任意被修改,也容易和其它的变量名 ...