我试图从samli生成的classes.dex生成一个.apk。但是我得到了这些错误:
失败[INSTALL_FAILED_SHARED_USER_INCOMPATIBLE] (当我尝试在模拟器上安装.apk时)
失败[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] (当我尝试在手机上安装.apk时)。
以下是我所做的步骤:
这是清单的开头:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.phone"
package="com.htc.fieldtest"
android:versionCode="1"
android:versionName="1.0" >
<application android:label="Field Test">
<activity android:label="@string/app_name"
android:name="FieldTestActivity"
android:process="com.android.phone"
android:launchMode="singleInstance">
我知道该应用程序首先由HTC devloper签署,现在由我签署。但有可能解决这个问题吗?
谢谢! 菲利克斯
答案 0 :(得分:3)
听起来你可能在新的apk文件中有多个签名。在创建新zip之前,请尝试删除META-INF目录中的文件。
此外,您的新apk现在可能已经压缩了资源。我不确定android会如何处理。在aapt生成的apk文件中,资源(图像,xml等)不压缩,因此它们可以直接映射到内存中,而不必提取它们。
如果您不修改资源,最好的办法是替换原始apk文件中的classes.dex文件,而不是创建一个新文件。如果您也尝试修改资源,则应使用apktool来提取/重新包装apk。