安装失败 [INSTALL_FAILED_INVALID_APK]

108

当我在Android Studio 0.2.10中创建一个项目后,点击运行并选择我的连接了USB并开启了调试模式的安卓设备时,会出现以下错误:

Waiting for device.
Target device: 0123456789ABCDEF
Uploading file
    local path: /Users/Rui/AndroidStudioProjects/FirstAppProject/FirstApp/build/apk/FirstApp-debug-unaligned.apk
    remote path: /data/local/tmp/rui.firstapp
Installing rui.firstapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/rui.firstapp"
pkg: /data/local/tmp/rui.firstapp
Failure [INSTALL_FAILED_INVALID_APK]

有什么想法它可能是什么吗?


选择我的手机...!! 你是指模拟器吗...?? - Gokul Nath KP
1
不,我的Android已经通过USB进行调试。 - RuiG
你确定应用程序与你使用的设备兼容吗?检查清单中的 'MinSDK' 和 'TargetSDK' 值。你尝试在模拟器中安装过吗?这将缩小问题是 APK 还是设备的范围。 - free3dom
45个回答

186

我在使用Android Studio时遇到了这个问题,解决方法很简单,只需要去 "Build" > "Clean Project" 就可以了。


13
如果还是无法正常工作,则使用“清理项目”后进行“构建->重新构建项目”操作可能会有效。 - Pei
1
我刚刚通过gradle 5.4.1升级到5.6.1时遇到了这个问题 - 不确定是什么奇怪的原因导致的,但是大的gradle升级肯定会有影响。另一种命令行解决方案是./gradlew clean,然后再执行您的正常构建命令。 - Mike Hardy
我遇到了这个问题,因为我更改了项目路径,“Build” > “Rebuild Project” 对我有用。 - Zeeshan Ahmad Khalil

44

只需在 android/app/build/outputs/apk/debug/ 文件夹中删除旧的 APK 文件 app-debug.apk 即可。 就这样,享受你的编码过程吧...


3
删除安卓应用程序的调试模式下的构建输出目录:rm -fr android/app/build/outputs/apk/debug/ - felansu
1
难道这不就相当于清理吗? - Raphael Pinel
"app" 中没有构建目录。我该怎么办? - Tim's

15

我曾经遇到过类似的问题,我发现我的Androidmanifest.xml文件中的包名以一个空格字符开头。

例如“ com.example.test”而不是“com.example.test”

我从清单文件中删除了所有这样的无效空格,问题被解决了。

编辑1:在一些Android版本上,包名中的“-”也会导致相同的问题。


1
哇!我以为“清除缓存并重启”会强制进行干净的构建,但显然不是这样。 - GabrielOshiro

14
如果有人仍然遇到问题,那么请执行 Build->Clean 项目,然后执行 Build->Rebuild 项目,最后再执行Sync project with Gradle file

10

我遇到了相同的问题,但是所有的解决方案都不起作用。问题在于我的包名称中没有.分隔符。
例如,如果您的包名是my.packagename,那么就可以了,但是它不能只是mypackagename
从这个错误报告中得到了提示。

https://code.google.com/p/android/issues/detail?id=55841


10

进入运行/调试配置

从顶部标签中点击“运行”>“编辑配置”

  • 模块:选择您的应用
  • 安装选项:部署默认APK
  • 确定

输入图像描述


8

如何解决这个问题:

  1. 安装RootExplorer
  2. 在SD卡上创建一个新的tmp文件夹
  3. 长按tmp文件夹,选择菜单中的链接(最后一项)
  4. 进入/data/local/并点击底部的CREATE LINK按钮

8
我遇到了这个问题,但以上的解决方法都无法解决。
由于某种原因,我的/data/local/tmp目录的权限没有正确设置(只有root有rwx权限)。我使用ADB修复了这个问题(您需要一个已经root的设备):
1.通过USB连接手机 2.使用adb shell启动ADB 3.使用cd /data/local进入/data/local目录 4.使用su进入root模式 5.使用chmod 777 tmp允许tmp目录读/写/执行权限 6.断开连接,重新启动Android Studio并再次连接设备

7

关闭即时运行 解决了我的问题。直到现在我都不知道任何解释。在迁移到Android Studio 3.0后,它开始出现这样的问题。希望这能帮助未来的某个人。


6

当我遇到这个问题时,解决方法是确保 AndroidManifest.xml 文件中的包名与 build.grade 文件中的应用程序 ID 相同。


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