首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装Android应用程序时出现"Parse Error : There a parsing the package“

安装Android应用程序时出现"Parse Error : There a parsing the package“
EN

Stack Overflow用户
提问于 2009-09-29 13:01:38
回答 26查看 410.7K关注 0票数 116

我在安装android应用程序(Parse Error : There is a problem parsing the package.)时遇到了这个错误。我完成了以下步骤。

  1. 我第一次安装应用程序时,它运行良好。
  2. 我对现有的应用程序进行了更改,并在清单文件中更改了版本号。

  • ,然后我导出应用程序并完成代码签名过程。为此,右键单击您的项目节点>选择Export。在那里您将看到一个向导。按照以下步骤操作,并完成代码签名。

  • 我得到了ARDemo.apk文件,然后我将其名称更改为ARDemo.apk。我将此apk文件发送到mobiles SD卡,并开始安装。我收到了上面的错误。

我在谷歌上搜索过,他们说解压清单文件有问题。

有人能告诉我我哪里出问题了吗?

EN

Stack Overflow用户

发布于 2019-12-11 15:48:27

我在Android-8上测试的Parse Error : There is a problem parsing the package.遇到了这个问题。我有相同的apk与相同的签名.Everything是相同的,没有版本号和版本名。当我手动安装应用程序时,它正在安装,但当我以编程方式下载和安装更新时,出现此错误。然后我找到了问题的原因。

有一个选项可以在此方法返回true时检查canRequestPackageInstalls (),然后应用程序成功安装。在我的情况下,它总是返回false。

所以我首先检查这个,然后让用户下载并安装更新。

onCreate()中的

代码语言:javascript
复制
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
                }

        }

onActivityResult()中的

代码语言:javascript
复制
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()
            }
    }

然后当需要安装更新时-

代码语言:javascript
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   if(canInstallPackage){
      doInstallAppProcess()
   }else{
        // generate error message
   }
}

希望它能帮助到一些人。

票数 1
EN
查看全部 26 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1492401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档