当我点击运行我刚刚在Android Studio 0.2.10中创建的项目并选择我的Android(通过USB通过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]
对它可能是什么的任何想法?
答案 0 :(得分:126)
我在Android Studio中得到了这个,而我所做的就是去"Build" > "Clean Project"
,它只是起作用。
答案 1 :(得分:23)
只需删除文件夹中的旧APK android / app / build / outputs / apk / debug / app-debug.apk。 就这样。享受您的编码...
答案 2 :(得分:15)
我有类似的问题一次,我观察到的是,我的Androidmanifest.xml中的包名是以一个空的空格字符开始的。 like " com.example.test" instead of "com.example.test"
我从清单文件中删除了所有这些无效空格,它解决了我的问题
编辑1 :包名中的' - '也会导致某些Android版本出现同样的问题
答案 3 :(得分:10)
我有同样的问题,但没有一个解决方案适合我。问题是我的包名中没有。分隔符。
即,如果您的包裹名称 my.packagename 就可以了,但它不能只是 mypackagename
得到了这个错误报告的提示。
答案 4 :(得分:8)
如果有人仍有问题,那么构建 - >清除项目,然后构建 - >重建项目最终使用Gradle文件同步项目
答案 5 :(得分:7)
关闭即时运行解决了我的问题。到现在为止还不知道任何解释。迁移到android studio 3.0后,就会出现这样的问题。希望这有助于将来。
答案 6 :(得分:7)
如何解决此问题:
RootExplorer
tmp
文件夹Link
到此文件夹(菜单中的最后一个选项)/data/local/
,然后点按底部的CREATE LINK
按钮答案 7 :(得分:7)
我遇到了这个问题,上述解决方案都没有对我有用。
由于某种原因,我的/data/local/tmp
目录上没有正确设置权限(只有root有rwx)。我使用ADB解决了这个问题(你需要一个有根设备):
adb shell
/data/local
cd /data/local
su
tmp
chmod 777 tmp
目录上进行读/写/执行
答案 8 :(得分:6)
当我遇到这个问题时,为我修复的是确保AndroidManifest.xml软件包名称与build.grade applicationId相同。
答案 9 :(得分:3)
如果您在AndroidManifest文件中写android:extractNativeLibs="false"
。然后将其更改为android:extractNativeLibs="true"
答案 10 :(得分:3)
答案 11 :(得分:3)
我发现了这个错误的另一个原因。如果您的设备有根,则可能会更改/ data / local / tmp的访问权限,因此adb无法访问其临时文件。解决方案是创建" tmp" sdcard上的文件夹,并在/ data / local /中创建符号链接(通过ADB shell或Root Explorer)。
答案 12 :(得分:2)
我在带有Dagger和多个模块的项目中遇到了这个问题。对我有用(以上所有方法均无效)的是 1)清空.gradle文件夹 2)清空.idea文件夹 3)在gradle.properties项目中,标记org.gradle.caching = false 4)可能会使AS中的缓存失效,清理,重建
您可能只需要摆脱#3,先清理然后再构建。
编辑:最近,我能够通过重新启动AS,然后进行清理,然后再次安装来解决此问题。
答案 13 :(得分:1)
我在Android Studio上遇到了这个问题,因为在我的Debug版本中我添加了版本名称后缀 -DEBUG ,而 - 就是问题。
答案 14 :(得分:1)
对于Flutter项目,使用VS Code编辑器,转到项目源文件夹并删除“ build”文件夹,然后开始调试。
答案 15 :(得分:1)
我尝试了以上提供的大多数解决方案(简单的解决方案,而不是提供chmod和更改内部库的解决方案),但是它们都无法正常工作
最终对我有用的是: “清理项目”->“重建项目”->在build.gradle应用程序模块中更改了应用程序versionName->同步Gradle->在设备上运行应用程序
答案 16 :(得分:0)
答案 17 :(得分:0)
如果 build clean 不起作用,则检查您的构建变体是否所有模块都具有相同的变体。
答案 18 :(得分:0)
试试这些命令:
cd android
然后
./gradlew clean
然后
react-native run-android
答案 19 :(得分:0)
不知道是什么导致了该问题。
A有几种方案,所有方案都可以构建和安装,有一次,一个方案不想要(经过什么操作-不知道)。在所有未知情况下,我执行:
npm run mac-reinstall
package.json
部分中scripts
中的位置:
"mac-reinstall": "rm -rf -v package-lock.json ios/build ios/Podfile.lock android/.gradle android/build android/app/build node_modules && npm i && cd ios/ && rm -rf Pods/ && pod install && cd ../"
您可以尝试从脚本中仅保留Android部分。
答案 20 :(得分:0)
如果已安装,请卸载以前的版本,然后重试。可能会有帮助
答案 21 :(得分:0)
我最近在构建多模块,多apk应用程序时遇到了这个问题。事实证明,我的顶级gradle构建是修改android:versionCode
,这使其与动态要素模块中的清单不同步。这花了我几个小时才能找到原因,而只花了几分钟就解决了。
我发现android studio日志本身
idea.log
,比IDE更能说明问题。
2020-02-05 22:52:56,206 [thread 246] WARN - #com.android.ddmlib - Failed to commit install session 986623974 with command cmd package install-commit 986623974. Error: INSTALL_FAILED_INVALID_APK: /data/app/vmdl986623974.tmp/1_mytestapp-afat-debug version code 1829 inconsistent with 18290
2020-02-05 22:52:56,206 [thread 246] WARN - a.run.tasks.AbstractDeployTask - Install failed: The application could not be installed: INSTALL_FAILED_INVALID_APK The APKs are invalid.
答案 22 :(得分:0)
对我来说,这个问题的原因是为我的应用模块之一选择了错误的构建变体。在“构建版本”工具中,我选择了与应用模块匹配的模块版本,它为我解决了这个问题。
答案 23 :(得分:0)
我遇到了一个版本不匹配的问题。 Dynamic Delivery模块在调试版本上,而其余模块在发布中。只需将Dynamic Delivery模块更改为发行,重建和安装即可解决此问题。
答案 24 :(得分:0)
我在android studio 3.4中遇到了这个问题。通过关闭Instant Run解决了我的问题。直到现在都不知道任何解释。希望这对以后的人有所帮助。
答案 25 :(得分:0)
我遇到了类似的问题,但是在我重启Ubuntu PC后,它会自动修复,因为我安装了一些Ubuntu(12.04)app更新,从而导致了此问题。
答案 26 :(得分:0)
进行重大更新后,请检查applicationId
中的build.gradle (Module: app)
和AndroidManifest.xml
中的软件包是否相同。
我遇到了同样的问题,所以我解决了。
答案 27 :(得分:0)
就我而言,当我尝试使用Failure [INSTALL_FAILED_INVALID_APK]
安装apk时,出现此错误pm install -r -d /sdcard/Download/foo.apk
。
由于该软件包已被pm uninstall <foo_package_name>
卸载,因此我尝试删除/data/local/tmp/<foo_package_name>
,但没有运气。
我需要重新启动android 系统以进行修复。 (不确定是否需要删除data/local/tmp/<foo_package_name>
步骤。)
[UPDATE]
这再次发生,我尝试不卸载,因为我需要保持apk继承sdk 22权限,因此这次我使用am force-stop <fook_package_name>
先将其停止,然后重试pm install
,解决了错误。
答案 28 :(得分:0)
删除AndroidManifest.xml中的代码:
tools:replace =“ android:appComponentFactory” android:appComponentFactory =“”
有效。
答案 29 :(得分:0)
这对我而言很有帮助:
Settings -> Apps -> Google Play Store -> Click "Enable" button.
答案 30 :(得分:0)
如果minSdkVersion
中的builde.gradle
大于设备的Android版本,则会出现此错误。在这种情况下,您必须修改minSdkVersion
。
答案 31 :(得分:0)
在元凶 之后,似乎有一个数字。
我对以下applicationId有相同的问题
org.tony.stark.125jarvis
将其更改为
org.tony.stark.jarvis
我能够将应用程序安装到android设备上。
答案 32 :(得分:0)
如果您有权访问设备控制台(adb shell),请更改以下权限:
/data/local/
,在这种情况下,确保设置对apk的正确权限。 答案 33 :(得分:0)
taskAffinity名称必须至少有一个'。'分离器
答案 34 :(得分:0)
您的包名应包含由com.example或prashant.mydairy等点组合的单词.....它现在应该可以正常工作
您必须更新您的包名称的文件如下: 1)清单文件 2)Gradle文件(模块appp): applicationId“package.name”
答案 35 :(得分:0)
这种失败似乎有多种原因。 对我来说,问题是在AndroidManifest文件中我使用&#39; uses-library&#39;引用了一个不存在的库(仅在此特定设备中)。标签。 删除此设备没有的库后,apk已正确安装。
答案 36 :(得分:0)
我遇到了这个问题,上述解决方案都没有对我有用。
原因可能是只有sdcard可用配额或apk安装权限的root版手机。
我使用ADB解决了这个问题(你需要一个有根设备):
答案 37 :(得分:0)
强制停止设备设置中的应用程序。
答案 38 :(得分:0)
我刚才有同样的错误。我在应用程序ID中有2015年。我将2015年替换为十五,这解决了它。
此外,如果您使用Android Studio,则可以尝试: 带有Gradle文件的工具/ Android / Synch项目
答案 39 :(得分:0)
我使用了androidquickstart maven原型并遇到了同样的问题:
我的包名是一个唯一的androidquickstart。根据之前的建议
package="androidquickstart"
更改为package="androidquickstart.test"
并相应地将测试从xml <activity android:name=".test.HelloAndroidActivity" >
的其他部分移至<activity android:name=".HelloAndroidActivity" >