如何在Android Studio中修复INSTALL_FAILED_INVALID_APK错误?

11

我最近将我的Android Studio更新到了3.6.1版本,也更新了gradle插件到3.6.1版本,gradle wrapper也更新到了5.6.4版本。

在运行调试版本时,我一直遇到这个错误:

Install failed: The application could not be installed: 
INSTALL_FAILED_INVALID_APK 
The APKs are invalid. 
  • 我已经检查了我的包和应用程序ID,它们是相同的。
  • 我尝试在清单文件<application>标记上使用android:extractNativeLibs="true",但仍然无法正常工作。
  • 一直清理和重建,仍然无法正常工作。
  • 已经使缓存失效,删除了.gradle、idea和构建文件,但仍然无法正常工作。
  • 我还在gradle.properties文件中使用了这个代码org.gradle.caching=false,但仍然无法正常工作。我查看了idea.log文件,以下是它所说的内容:
2020-03-22 00:49:04,191 [4654427]   INFO - ild.invoker.GradleBuildInvoker - Gradle build finished in 1 m 37 s 411 ms 
2020-03-22 00:49:04,213 [4654449]   INFO - ools.idea.run.tasks.DeployTask - Installing application: PACKAGE_NAME 
2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675813ms TRC_BEG [12861][12861] : installer 
2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675814ms TRC_BEG [12861][12861] : Command Dump 
2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675814ms TRC_BEG [12861][12861] : get process ids 
2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675872ms LOG_ERR [12861][12861] : Could not get package user id: /system/bin/run-as: unknown package: PACKAGE_NAME 

2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675874ms TRC_END [12861][12861] :  
2020-03-22 00:49:04,451 [4654687]   INFO - a.run.tasks.AbstractDeployTask - 20675874ms TRC_BEG [12861][12861] : retrieve_apk_path 
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675874ms TRC_BEG [12861][12861] : apk_path_via_cmd_package_dump 
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675923ms TRC_END [12861][12861] :  
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675923ms TRC_END [12861][12861] :  
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675923ms LOG_ERR [12861][12861] : Could not find apks for package: PACKAGE_NAME 
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675923ms TRC_END [12861][12861] :  
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - 20675923ms TRC_END [12861][12861] :  
2020-03-22 00:49:04,452 [4654688]   INFO - a.run.tasks.AbstractDeployTask - DUMP_UNKNOWN_PACKAGE 
2020-03-22 00:49:04,967 [4655203]   INFO -            #com.android.ddmlib - Created install session 969164047 with options -r -t -S 14667707 
2020-03-22 00:49:04,967 [4655203]   INFO -            #com.android.ddmlib - Uploading APK C:\Projects\PROJECT_FOLDER\source\PROJECT_NAME\app\build\outputs\apk\debug\app-debug.apk to session 969164047 
2020-03-22 00:49:08,055 [4658291]   INFO - WindowsPerformanceHintsChecker - Windows Defender status: NONE_EXCLUDED; projectDirExcluded? false 
2020-03-22 00:49:17,686 [4667922]   WARN -            #com.android.ddmlib - Failed to commit install session 969164047 with command cmd package install-commit 969164047. Error: INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/PACKAGE_NAME -d9UfJVvKMP9-OA81TwCVvQ==: Package /data/app/PACKAGE_NAME -d9UfJVvKMP9-OA81TwCVvQ==/base.apk code is missing 
2020-03-22 00:49:17,687 [4667923]   WARN - a.run.tasks.AbstractDeployTask - Install failed: The application could not be installed: INSTALL_FAILED_INVALID_APK The APKs are invalid. 
2020-03-22 00:49:17,689 [4667925]   INFO - run.AndroidLogcatOutputCapture - stopAll() 
2020-03-22 00:49:21,408 [4671644]   INFO - rationStore.ComponentStoreImpl - Saving appEditorColorsManagerImpl took 12 ms 

*请注意,我已将我的包名替换为PACKAGE_NAME和项目名称

我已经没有其他选择了。最坏的情况是我会降级gradle、gradle wraper和甚至Android Studio,但我故意讨厌这个做法,因为它是一步后退。


我还没有检查发布版本。 - John Ernest Guadalupe
我尝试生成调试APK,但它没有安装。只显示“应用程序安装失败”。 - John Ernest Guadalupe
我将尝试使用发布版APK,但我仍然认为它会产生相同的结果。 - John Ernest Guadalupe
同样的问题...在实体设备(Pixel 4)或模拟器(Pixel 3a)上都无法工作。现在暂时使用旧版本的gradle,但仍希望找到解决方法。 - Innova
展示你的清单文件和Gradle文件。这可能只是一个小问题。 - Ranjithkumar
显示剩余4条评论
10个回答

19

另一个解决方案是仅删除../android/app/build/outputs/apk/debug/app-debug.apk文件,然后运行“npm run android” / “yarn android”。


不确定为什么这个得到了-1,它对我起作用了,在我更新了gradle版本后出现了这个错误。 - Eric Hasselbring

8

我尝试更新了Android Studio,但仍然出现"INSTALL_FAILED_INVALID_APK"错误。然后,我更新了Firebase依赖项,但仍然无法解决问题。

有趣的是,另一个项目上却可以顺利运行。这让我检查了一下它们之间不同的依赖项,发现唯一的主要依赖项是AppDynamics Gradle插件。

我删除了AppDynamics instrumentation,然后就可以工作了!我认为即使在此之前,Gradle中的AppDynamics instrumentation也是导致应用程序无法正常运行的原因。我已确认这是AppDynamics插件的问题。请参考链接:https://community.appdynamics.com/t5/End-User-Monitoring-EUM/AppDynamic-EUM-setup-for-Android-Cordova-project/td-p/38864

暂时先降级,等待AppDynamics提供修复方案。


谢谢,我们也在使用App Dynamics。 - Innova
你具体是降级了什么?是 AppDynamics、AS 还是 AppDynamics Gradle 插件?你降级到了哪个版本?我也遇到了同样的问题。 - Nilzor
找到解决方法了:将Gradle构建工具降级至3.5.0是一个解决办法。 - Nilzor
2
使用 AppDynamics 20.5.2 没有出现问题。 - mario romano lopez
幸运的是我看到了这篇帖子 :) - Anky An
显示剩余2条评论

3

在手机上删除与相同包标识(bundle ID)的应用程序对我很有帮助。


2
有时候,这是因为您安装应用程序的模拟器/设备的原因。如果您之前在设备上安装了应用程序,然后卸载了,那么它可能仍然存在于您的设备上。因此,在模拟器中,请转到“设置->应用程序”,然后在列表中检查该应用程序是否存在。如果存在,请单击该特定应用程序,然后单击“卸载所有用户”(通常位于右上角的三个点)。希望能对您有所帮助:)

我在设备的设置和应用程序列表中找不到它了。 - John Ernest Guadalupe

1
我的做法如下:
  1. 卸载开发版(或应用商店中的版本)。如果您的应用程序与示例应用程序的bundle id相同,则会拒绝安装不同变体的示例应用程序。adb uninstall <BUNDLE_ID>
  2. 刷新Android构建 cd ./android && ./gradlew clean && cd ../
  3. 运行react-native run-android --variant=release

注意:请保留原文中的html标签。

0

我记得我曾经遇到过相同的问题,并通过 build>clean 项目解决了它。但是,你说这在这里不起作用,有一个链接谈论 Manifest 文件中应用程序包名称的微小更改,而且它是最近更新的。只是觉得这可能值得一看,因为它没有出现在你已经检查过的事情列表中。另外,你发布的日志提到了包名称未知,这似乎很可疑。

希望能对你有所帮助。


我已经检查过了,它是一样的,我也不能更改我的包名。 - John Ernest Guadalupe

0

当您设置模拟器(AVD)时,您可以选择外部和内部存储大小。

enter image description here

我认为您已经超出了存储空间的限制。

解决方案(它们都属于释放存储空间的“类别”):

  • 卸载不必要的应用程序。
  • 从AVD管理器中清除模拟器数据。
  • 通过编辑特定的模拟器来扩展存储空间。

我没有使用模拟器,而是使用128GB存储的Note 0实际设备。 - John Ernest Guadalupe

0

我遇到了同样的问题。尝试通过终端卸载应用程序adb uninstall com.packagename,然后重新安装该应用程序。基本上,有时应用程序是为设备中的其他用户安装的,从设备中卸载只会从当前用户中卸载它,这就是为什么会出现此错误的原因。试一试,希望能有所帮助。


0

我在使用Android Studio 4.0时遇到了问题。在打开Android Studio后,尝试在模拟器上启动应用程序时,出现“INSTALL_FAILED_INVALID_APK”的错误。

找到了一个解决方法 - 如果我先在真实设备上启动应用程序,然后在模拟器上启动就没有问题了。百分之百有效。

不幸的是,Android Studio仍然存在很多漏洞...


-1
application>- android:extractNativeLibs="true" 

为我工作


minSdkVersion 23

ndk {
   abiFilters "armeabi-v7a"
}

minSdkVersion小于23,对我也适用


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