Android 安装失败,原因是:';空';-安卓工作室3.5
自从我遇到APK安装问题以来,我已经将Android studio更新为3.5。这是它显示的唯一日志:Android 安装失败,原因是:';空';-安卓工作室3.5,android,android-studio,Android,Android Studio,自从我遇到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时会发生这种情况。如果我从设备上卸载应用程序,然后重新运行构
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry
当试图在真实设备上安装APK时会发生这种情况。如果我从设备上卸载应用程序,然后重新运行构建,它只安装一次,然后在下次安装时继续抛出此错误。它在模拟器上运行良好,但我不能完全使用模拟器
我所尝试的:
- 已删除Android Studio配置文件
- 已从项目中删除渐变文件
- 使缓存无效并重置缓存
- 清理/重建项目
- 查找类似的问题Stackoverflow(没有与我的问题匹配的问题)
- 干净安装(删除所有文件,包括SDK)Android Studio 3.5
我想这个问题可能源于Windows计算机。最后,我找到了解决方案 只需将v2SigningEnabled设置为true
signingConfigs {
release {
v2SigningEnabled true
}
}
尝试将android:
appComponentFactory=“”
更改为android:appComponentFactory=“new”
,“new”
可以是任何单词从设备上删除/卸载应用程序解决了我的问题。android Studio中的此问题适用于低于API 26
(android 8)的设备。这是由于更换了现在称为的InstantRun而引起的
似乎只有两种方法可以在下次更新中修复它
API>=26
上运行运行配置
将部署
从APK
更改为App bundle
,反之亦然。如果我理解正确,这将正确地重建应用程序和解决错误当然,在从AndroidStudio运行应用程序之前,可以选择从设备中手动删除应用程序。我自己并没有遇到这个问题。然而,之前我们在Android Studio的即时运行中遇到了一些问题。我建议您在Android Studio中检查以下设置,然后取消选中这些设置以检查您的代码现在是否工作 转到
Android Studio->首选项
,然后取消选中部署
下的以下选项
以下是安卓Studio 3.5的新功能,这将帮助您更好地理解该功能
对我来说,卸载应用程序或清理项目“解决”了问题。为了让它不那么令人沮丧,我添加了clean job来调试构建类型,如下所示:
buildTypes {
...
debug {
clean
}
...
}
在阅读了有关应用更改的文章后,我终于在这里找到了一个解决方案:
为应用更改启用运行回退
单击应用更改并重新启动活动后,或
应用代码更改,Android Studio构建新的APK并确定
是否可以应用更改。如果无法应用更改
并且会导致应用更改失败,Android Studio会提示您
重新运行你的应用程序。但是,如果你不想
每次出现这种情况时都会提示,您可以将Android Studio配置为
无法应用更改时自动重新运行应用程序
要启用此行为,请执行以下步骤:
- 在Windows或Linux上,从菜单栏中选择文件>设置李>
- 在macOS上,从菜单栏中选择“Android Studio>首选项”李>
升级到3.5后,我也遇到了同样的问题。我想知道您是否有幸在连接的设备上运行
更新:我想通过在“运行/调试配置”对话框的安装选项下设置“APK from app bundle”来实现这一点(Windows:运行>编辑配置) 编辑应用程序>常规>安装选项>安装标志 添加安装标志
-r-t
此标志表示
adb安装-r-t apkpath
在安装/运行APK之前,请使用以下配置添加“清理”“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
}
}
}
将上述代码复制并粘贴到您的应用程序/build.gradle
文件中,这适用于所有版本变体。
具体来说,如果您只有调试和发布生成类型,则上述代码将等效于以下代码:
assembleDebug.dependsOn clean
assembleRelease.dependsOn clean
尝试运行命令“adb设备”,如果输出为空,则重新连接设备。这帮我犯了同样的错误。Android studio 3.5无法确定设备是否已断开连接。正如谷歌团队在以下文件中所述,天堂操作系统存在问题: 我们能够在带有天堂操作系统的设备上复制它。 它不完全支持我们用于DeltaInstall的系统调用 没有明显的解决方案(除了从生成文件夹中删除APK或卸载应用程序) 我们应该有一个解决方案,但就目前的情况而言,天堂操作系统将不会有DeltaInstall,并且始终需要执行较慢的完整安装 OP指出,更改为
Nothing
不会将APK部署到设备上(这就是不会显示错误的原因),因此无法解决问题
编辑:
这已经在Android Studio 3.6中修复
谢谢你的反馈。这
cd app/build/outputs/apk/debug
adb install -r -t your_app_name.apk
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a','x86_64'
universalApk true
}
}
$ adb shell settings put global verifier_verify_adb_installs 0
$ 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