安装失败,因为:'null'-Android Studio 3.5

时间:2019-08-21 10:08:56

标签: android android-studio android-studio-3.5

自从我遇到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时会发生这种情况。如果我从设备上卸载该应用程序,然后重新运行该版本,则它只会安装一次,然后在下一次安装时会不断抛出此错误。它可以在仿真器上正常运行,但是我不能为所有功能使用仿真器。

我尝试过的事情:

  • 已删除的Android Studio配置文件。
  • 从项目中删除了Gradle文件。
  • 无效和重置的缓存。
  • 清理/重建了项目。
  • 寻找类似的问题Stackoverflow(没有匹配我的问题)
  • 清洁安装(删除了包括SDK在内的所有文件)Android Studio 3.5

更新

我在计算机上安装了Linux Mint并在那里测试了AS 3.5,由于某些原因,即使对于Android 7及更低版本的设备,一切都可以正常工作。

以前的操作系统:Windows 10 1903

当前操作系统:Linux Mint 19.2

我认为这个问题可能起源于Windows计算机。

33 个答案:

答案 0 :(得分:66)

打开运行/调试配置对话框

编辑您的应用>常规>安装选项>安装标志

添加安装标志-r -t

此标志表示adb install -r -t apkpath

screen pic

答案 1 :(得分:10)

低于API 26(Android 8)以下的设备会在Android Studio中发生此问题。这是由替换InstantRun(现在称为ApplyChanges)引起的。

似乎只有两种方法可以在下一次更新中对其进行修复。

  1. API>=26上运行。
  2. 每次更改代码后,请编辑run configuration,将deployAPK更改为App bundle,反之亦然。如果我正确理解,这将正确地重建应用程序并解决错误。

当然,有一个选项可以在从AndroidStudio运行应用程序之前从设备中手动删除应用程序。

答案 2 :(得分:9)

您需要在首选项中禁用“使用libusb后端”->调试器 enter image description here

答案 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配置为   无法应用更改时自动重新运行您的应用。

     

要启用此行为,请按照下列步骤操作:

     
      
  1. 打开“设置”或“首选项”对话框:      
        
    • 在Windows或Linux上,从菜单栏中选择文件>设置
    •   
    • 在macOS上,从菜单栏中选择 Android Studio>首选项
    •   
  2.   
  3. 导航至构建,执行,部署>部署
  4.   
  5. 选中复选框启用以下任一功能的自动运行后备广告   应用更改操作。
  6.   
  7. 单击“确定”。
  8.   

Screenshot running on Linux

答案 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表示“允许测试包”

enter image description here

答案 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)

主要解决方案

  1. 文件->设置->构建,执行,部署-> 调试器>禁用 Use libusb backend

  2. 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

Source

答案 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

  • 比3.5更有效的版本

但是刺激需要添加到安装标志 -r -t

答案 27 :(得分:0)

尝试运行命令“ adb devices”,如果输出为空,则重新连接设备。这帮助了我同样的错误。 Android studio 3.5不能确定设备已断开连接。

答案 28 :(得分:0)

我自己没有面对这个问题。但是,以前我们在Android Studio的即时运行方面遇到了一些问题。我建议您在Android Studio中检查以下设置,然后取消选中设置以检查您的代码是否现在可以正常工作。

转到Android Studio -> Preference,然后取消选中Deployments下的以下内容。

enter image description here

以下是Android Studio 3.5中的新功能,它将帮助您更好地理解该功能。

enter image description here

答案 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中正常工作 这是一个永久性的解决方案。