自从我遇到APK安装问题以来,我已将Android Studio更新至3.5。这是它显示的唯一日志:
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry
尝试在真实设备上安装APK时会发生这种情况。如果我从设备上卸载该应用程序,然后重新运行该版本,则它只会安装一次,然后在下一次安装时会不断抛出此错误。它可以在仿真器上正常运行,但是我不能为所有功能使用仿真器。
我尝试过的事情:
更新
我在计算机上安装了Linux Mint并在那里测试了AS 3.5,由于某些原因,即使对于Android 7及更低版本的设备,一切都可以正常工作。
以前的操作系统:Windows 10 1903
当前操作系统:Linux Mint 19.2
我认为这个问题可能起源于Windows计算机。
答案 0 :(得分:66)
打开运行/调试配置对话框
编辑您的应用>常规>安装选项>安装标志。
添加安装标志-r -t
。
此标志表示adb install -r -t apkpath
答案 1 :(得分:10)
低于API 26
(Android 8)以下的设备会在Android Studio中发生此问题。这是由替换InstantRun
(现在称为ApplyChanges)引起的。
似乎只有两种方法可以在下一次更新中对其进行修复。
API>=26
上运行。run configuration
,将deploy
从APK
更改为App bundle
,反之亦然。如果我正确理解,这将正确地重建应用程序并解决错误。当然,有一个选项可以在从AndroidStudio运行应用程序之前从设备中手动删除应用程序。
答案 2 :(得分:9)
答案 3 :(得分:5)
对我来说,卸载应用程序或清理项目都可以“解决”问题。为了减少挫败感,我添加了干净的作业来调试构建类型,如下所示:
buildTypes {
...
debug {
clean
}
...
}
答案 4 :(得分:4)
在阅读关于{strong>应用更改的Release Notes之后,我终于在这里找到了解决方案:https://developer.android.com/studio/run#apply-changes-run-fallback
启用运行后备以应用更改
单击“应用更改并重新启动活动”或 应用代码更改,Android Studio会构建一个新的APK并确定 是否可以应用更改。如果更改无法应用 并导致“应用更改”失败,Android Studio会提示您 运行再次运行您的应用程序图标。但是,如果您不想成为 每次发生此提示时,您可以将Android Studio配置为 无法应用更改时自动重新运行您的应用。
要启用此行为,请按照下列步骤操作:
- 打开“设置”或“首选项”对话框:
- 在Windows或Linux上,从菜单栏中选择文件>设置。
- 在macOS上,从菜单栏中选择 Android Studio>首选项。
- 导航至构建,执行,部署>部署。
- 选中复选框启用以下任一功能的自动运行后备广告 应用更改操作。
- 单击“确定”。
答案 5 :(得分:4)
Google团队在https://issuetracker.google.com/issues/139782879中指出,Lineage OS存在问题:
我们能够在使用LineageOS的设备上重现它。 它不完全支持我们用于DeltaInstall的系统调用。
没有明显的解决方案(除了从构建文件夹中删除APK或卸载应用程序之外。)
我们应该对此有一个解决方法,但就目前而言,LineageOS将没有DeltaInstall,并且始终需要执行较慢的完整安装。
OP指出,更改为Nothing
不会将APK部署到设备上(这就是为什么不会显示错误的原因),因此无法解决问题。
修改:
此问题已在Android Studio 3.6中修复。
感谢您的反馈。这应该在最新版本的3.6中修复。
答案 6 :(得分:3)
构建>清理项目,该工作对我来说很重要。更改其他设置之前,请先尝试此操作。
快乐编码:)
答案 7 :(得分:3)
我在代码编辑运行配置中找到了解决方案,在“部署”中进行了更改,选择“默认APK”和安装标志= -r -t ,然后申请运行。该应用程序将在所有设备和模拟器中运行。 我在OPPO 1 plus,Samsung Tab,Emulator Also 中也表现最出色。
请考虑编辑运行配置 Android Studio中的“接近运行”按钮
编辑应用程序>常规==>安装选项==>安装标志
添加安装标志-r -t
-r表示“替换现有应用程序”。 -t表示“允许测试包”
答案 8 :(得分:2)
升级到3.5后,我也遇到同样的问题。我想知道您是否有运气让“运行”与连接的设备一起使用?
更新:我要通过在“运行/调试配置”对话框的“安装选项”下设置“来自应用程序捆绑包的APK”来使其工作
答案 9 :(得分:1)
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a','x86_64'
universalApk true
}
}
由于'armeabi','x86','armeabi-v7a','x86_64'和'arm64-v8a'等不同的构造,我们必须将上述配置添加到build.gradle文件中。
答案 10 :(得分:1)
在安装/运行之前,使用以下配置添加“ 干净” gradle任务依赖项。
project.afterEvaluate {
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def capitalizedVariant = variant.name.capitalize()
def assembleVariantTask = project.tasks."assemble${capitalizedVariant}"
assembleVariantTask.dependsOn clean
}
}
}
将上面的代码复制并粘贴到您的app/build.gradle
文件中,这适用于所有构建变体。
特别是,如果您只有调试和发布构建类型,则上面的代码将等同于下面的代码:
assembleDebug.dependsOn clean
assembleRelease.dependsOn clean
答案 11 :(得分:1)
当我在真正的小米pocophone 1上运行该应用程序并通过首先在模拟器上运行该应用程序,然后在我的小米pocophone 1上运行该应用程序来解决此问题时,我也遇到了此错误
答案 12 :(得分:0)
就我而言,它只能通过禁用APK签名验证来起作用:
$ adb shell settings put global verifier_verify_adb_installs 0```
And using the -r -t flags mentioned above
答案 13 :(得分:0)
对我来说,当我创建一个新的空白活动并且 Android Studio 出于某种原因创建了一个可穿戴活动时,问题就开始了。从清单中删除所有提及可穿戴活动的内容并删除课程后,一切都恢复正常。
答案 14 :(得分:0)
我也遇到了同样的问题,我遵循以下步骤 1)清洁项目 2)重建项目
这解决了我的问题
答案 15 :(得分:0)
就我而言,我无法解决以上所有问题,因此我找到了另一种方法。最后,我找到了解决方案。 只需找到正确的电话驱动程序即可。我的开发电话是三星Galaxy Note 2(型号:GT-N7105 / Android 4.1.2)。我只是分享我的解决方案。希望节省您的时间。
答案 16 :(得分:0)
在测试新模块时会出现问题。首先,您分别编写它,然后将其添加到主应用程序中。将其添加到主应用程序后,请从手机中删除“ test_app”。
答案 17 :(得分:0)
运行->编辑配置->安装标志:-r -t->应用->确定
答案 18 :(得分:0)
几分钟前,当我尝试在真实设备上运行我的应用程序并在完成之前停止gradle构建时,遇到了这个问题。我要做的就是卸载设备上的应用程序,然后同时在AVD和真实设备上重新运行该应用程序,并且运行正常。希望这也对您有用
答案 19 :(得分:0)
文件->设置->构建,执行,部署-> 调试器>禁用 Use libusb backend
>
Gradle (位于IDE右侧)-> android-> app-> Tasks-> install-> uninstallAll ,或者您也可以通过控制台通过以下方式进行操作:
$ ./gradlew uninstallAll
在“运行/调试配置”中删除并再次创建应用程序
运行/调试配置->启动选项>启动:指定活动>选择活动
使用其他物理设备,IDE或PC版本安装应用程序
重新安装IDE并删除.android
重试主要解决方案
如果要安装并打开应用程序,可以通过以下命令使用adb:
$ adb install -r -t absolute-path.apk
$ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
GL
答案 20 :(得分:0)
来自 Build -> CleanProject
的 1-clean 项目2-从ProjectPath/app/build/outputs
中删除文件夹输出3-然后构建gradle并运行应用
答案 21 :(得分:0)
最后,我找到了解决方法
只需将v2SigningEnabled设置为true
RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]
答案 22 :(得分:0)
我按下了锤子图标以重建应用程序,然后将其安装。所以我不知道吗?整个android hack工作平台糟透了。
所有这些钱,谷歌仍无法聘请或找到足够好的程序员来提出自己真正的操作系统。
答案 23 :(得分:0)
对我来说minSdkVer = 22, tarSdkVer = 28
,请执行Gradle -> app -> Tasks -> build -> clean && cleanBuildCache
操作,问题已解决。
答案 24 :(得分:0)
我从模拟器上卸载了该应用程序,然后运行,一切恢复正常
答案 25 :(得分:0)
对我有用的方法是删除旧的应用程序,然后重新运行该项目。在那种情况下,旧的签名证书不会打扰。
答案 26 :(得分:0)
当我获得新的真实设备并尝试从android studio 3.5安装apk时,我的mac os上仍然存在该错误-我发现它的修复方式很丑-在studio中打开终端并遵循:
cd app/build/outputs/apk/debug
adb install -r -t your_app_name.apk
它与每个项目和每个设备有关!
p.s。谷歌,真的吗?
已编辑:
我最终安装了
Android Studio 3.6 Canary
但是刺激需要添加到安装标志 -r -t
答案 27 :(得分:0)
尝试运行命令“ adb devices”,如果输出为空,则重新连接设备。这帮助了我同样的错误。 Android studio 3.5不能确定设备已断开连接。
答案 28 :(得分:0)
我自己没有面对这个问题。但是,以前我们在Android Studio的即时运行方面遇到了一些问题。我建议您在Android Studio中检查以下设置,然后取消选中设置以检查您的代码是否现在可以正常工作。
转到Android Studio -> Preference
,然后取消选中Deployments
下的以下内容。
以下是Android Studio 3.5中的新功能,它将帮助您更好地理解该功能。
答案 29 :(得分:0)
从设备上删除/卸载应用程序可以解决我的问题。
答案 30 :(得分:-1)
尝试将android:appComponentFactory=""
更改为android:appComponentFactory="new"
,"new"
可以是任何单词
答案 31 :(得分:-2)
gradle.properties-> android.enableAapt2 = false
答案 32 :(得分:-2)
最后,在安装选项DEPLOY->中从选择第4个选项->(Nothing)选项-> Apply中更改代码编辑运行配置中得到了解决方案 该应用程序可以在android studio 3.5中正常运行。在手机和模拟器中也是如此。这也可以在android版本9中正常工作 这是一个永久性的解决方案。