安装apk文件时出现“该包似乎已损坏”的错误提示

80

我遇到了一个奇怪的问题。在将Android Studio从2.3.3升级到3.0后,出现了以下错误:

应用未安装。 该包似乎已损坏。

我尝试过生成调试和发布版本的apk并安装,但每次安装apk时都会显示相同的消息。

当我在Android Studio中运行Android项目时,它可以正常工作。 可能是Gradle的问题,但我无法解决它。 请帮忙解决。


1
回答几个问题, 01. 你的包名是什么? 02. 你的设备上已经安装了这个应用吗? 03. 在升级你的工作室之前,这个工作正常吗? 04. 你是否检查过你的设备设置中的“从外部来源安装”? - Aman Shekhar
1
1)你正在使用模拟器吗? 2)在你的设备中是否有与相同包名的其他应用程序? - Ronak Thakkar
@Ronak Thakkar..
  1. 我同时使用模拟器和实体设备,每次只用一个。
  2. 没有其他具有相同包名的应用程序。
- user3678528
是的...当我从Android Studio运行项目时,在两个设备上都可以正常工作。但是当我手动安装apk文件时,我遇到了那个问题。 - user3678528
您是否将Gradle插件更新到版本3? - Sangeet Suresh
显示剩余9条评论
11个回答

134

在搜索了很多后我找到了一个解决方案:

进入 Build-> Build Apk(s)。

创建完apk后,你会看到如下对话框。

enter image description here

点击 locate 并在你的手机上安装它。

享受吧!


3
哎呀,谢谢。我很困惑为什么不构建APK就无法使用。 - M. Usman Khan
6
安全问题。如果非开发者想要您的APK,它可以很容易地从您的文件夹中获取。现在只有开发者才能创建和分享APK。 - tej shah
2
谢谢!如果您注意到,从此过程生成的APK文件大小几乎是普通运行/构建生成的APK文件大小的3倍。 - Pranav Mahajan
1
如何生成发布版本?我也遇到了发布版本的问题... - Azizjon Kholmatov
3
这个方案适用于构建版本(调试),但是发布版呢?发布版也出现了同样的问题:( - Darshan Khatri
显示剩余5条评论

8
由于我自己遇到了这个问题,而这里的答案并没有帮助到我。我的情况是因为我在gradle应用程序模块文件中将targetSdkVersion24降级到22,原因是某些原因。显然,apk不接受另一个降级的targetSdkVersion安装在其上。
因此,一旦我将其改回24,错误就消失了,并且应用程序正确安装。

1
谢谢,对我来说也是这样。我只看了清单文件,但是 build.gradle 似乎覆盖了清单文件中的 targetSdkVersion。 - FrankKrumnow
1
@FrankKrumnow 很高兴我能帮助你解决问题,祝你好运。 - Muhammed Refaat

4
当您发布已签名的apk时,请确保在“签名版本”中勾选v1v2。详情请见下方截图: Signed APK generation

3

这很奇怪。我不知道为什么在生成已签名的 apk 时发生了这种情况,但是以下步骤对我有用。

  1. 转到文件并选择使缓存/重置无效
  2. 之后进入构建选项并选择清除项目
  3. 然后选择重新构建项目

就这样。


2

在我的情况下,如果您在更新应用程序时收到此错误消息,则可能是因为目标SDK版本的问题。在这种情况下,您将在日志中收到以下错误信息:

“Package com.android.myapp新的目标SDK 22不支持运行时权限,但旧的目标SDK 23支持”

这是因为您先前的应用程序是使用更高版本的sdk构建的。如果您的新应用程序是使用22构建的,并且已安装的应用程序是使用23构建的,则在更新时会出现软件包似乎已损坏的错误。


1
在我的情况下,目标手机已经安装了该应用程序,但处于“禁用”状态。因此,用户认为已经卸载了它,但实际上并没有。我进入主应用程序列表,点击“禁用”应用程序,卸载它,然后APK就可以继续安装了。

1
运行一个直接构建的APK将会起作用。但请确保卸载任何先前安装的同名软件包。

0

通过版本号,我指的是app/build.gradle文件中的versionCode。

场景: 我已经安装了一个APK。它的版本号是152430。

我试图安装一个新的APK(通过下载新的APK文件)并更新现有的应用程序。新的APK的版本号为:152427

由于新的APK的版本号小于已安装的APK,因此会出现错误。

解决方案: 版本号需要高于已安装的APK版本。


0
在我的情况下,通过进行构建,从“构建”>“构建APK”,它可以正常工作。

0

对于我来说,这些答案都无法解决我的问题。

由于错误信息是软件包损坏,所以我需要运行以下操作:

  1. adb uninstall <package name>
  2. 再次运行应用程序/使用 adb install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接