&引用;分析错误:分析包时出现问题;安装Android应用程序时
我在安装android应用程序时遇到此错误(&引用;分析错误:分析包时出现问题;安装Android应用程序时,android,Android,我在安装android应用程序时遇到此错误(解析错误:解析包时出现问题。)。我执行了以下步骤 我第一次安装该应用程序时,它工作正常 我对现有应用程序进行了更改,并在清单文件中更改了版本号 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:ve
解析错误:解析包时出现问题。
)。我执行了以下步骤
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
<meta-data>
</meta-data>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
<meta-data>
</meta-data>
有人能告诉我我有什么问题吗?您说第一次安装应用程序时,它工作正常 您在两个版本中概述的步骤的唯一区别是:
Joseph我只在设备上的android版本低于编译应用程序的版本时看到解析错误。例如,如果应用程序是为android OS v2.2编译的,而您的设备只有android OS v2.1,则在尝试安装应用程序时会出现解析错误。如果您在SDK版本2.1下编译和导出apk文件,则在SDK导出“2.1”下的任何android版本上都无法运行。Android软件是向前兼容的,而不是向后兼容的。例如,如果您正在使用android NDK(安卓SDK的安卓附加组件)软件包进行编程,该软件包允许在C/C++系列中进行开发,那么它仅与安卓2.3、安卓2.2及以下版本兼容,仅支持java版本。因此,您将看到“解析软件包时出现问题”错误。安装程序至少在以下情况下会给出指定的错误:
- 签名后更改包的名称:使用与已签名包相同的确切名称(改为在清单中调整名称)
- 根据更高的API级别编译包:更正清单文件中的API级别
- 从SD卡执行软件包:从手机内存运行(安装)apk-文件或使用adb命令进行安装
您可以在Android Marketplace中找到这两个应用程序。对于其他任何有此问题的人,我唯一一次出现此错误是当您的Android构建配置中的API版本与物理设备上的不匹配时
进入Eclipse,右键单击您的项目并转到属性。选择Android——这将带您进入Android构建目标。调整您的目标以匹配设备,并查看这是否解决了问题 检查您的设备是否支持您在AndroidManifest.xml的minSdkVersion中指定的版本。如果未指定较低版本,请重试我遇到了与其他人一样的“解析错误:解析包时出现问题”错误消息,但我怀疑这可能是由不同的原因造成的 为了测试这一点,我做了以下工作: 设置 Windows 8.1 日食 ADT构建:v22.6.2-1085508 我生成了一个典型的接受所有默认值的新Helloworld应用程序 我在模拟器和实时设备上成功运行了应用程序 然后我将apk侧向加载并安装到我的实时设备上,并成功运行了它 它在bin文件夹中生成了一个大小为782kb的apk 然后,我将Helloworld应用程序导出到同一个bin文件夹中,并从我的密钥存储中为该应用程序签名,该应用程序过去曾成功用于推广到Google Play 它创建了一个大小为385 KB的APK(替换原来的APK)
我将apk侧向加载到我的设备上,当我去安装它时,我得到了错误“Parse error:There a problem Parse the package”(这是作为非导出表单侧向加载和安装的同一个包)@android:style/Theme.NoTitleBar.Fullscreen“在Jellybean设备上的launcher活动中。当我删除此属性时,它起作用了。类似的问题,使用此“借用”和稍加修改的代码:
Intent intent = new Intent(Intent.ACTION_VIEW);
File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
result = true;
需要将文件创建更改为此(文件构造函数中的逗号而不是加号,下载目录后缺少“/”):
另一种可能
adb logcat
logcat
adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk
adb devices
minSdkVersion 14
targetSdkVersion 28
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (!packageManager.canRequestPackageInstalls()) {
startActivityForResult(
Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).setData(
Uri.parse(String.format("package:%s", packageName))
), requestCodeqInstallPackage
)
} else {
canInstallPackage = true
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
if (requestCode == requestCodeqInstallPackage && resultCode == Activity.RESULT_OK) {
if (packageManager.canRequestPackageInstalls()) {
canInstallPackage = true
}
} else {
canInstallPackage = false
Toast.makeText(mContext, "Auto update feature will not work", Toast.LENGTH_LONG)
.show()
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if(canInstallPackage){
doInstallAppProcess()
}else{
// generate error message
}
}
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-key.keystore app-release-unsigned.apk myappkeyalias
zipalign -v 4 app-release-unsigned.apk MyApp.apk