Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安装失败,原因是:';空';-安卓工作室3.5_Android_Android Studio - Fatal编程技术网

Android 安装失败,原因是:';空';-安卓工作室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时会发生这种情况。如果我从设备上卸载应用程序,然后重新运行构

自从我遇到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配置文件
  • 已从项目中删除渐变文件
  • 使缓存无效并重置缓存
  • 清理/重建项目
  • 查找类似的问题Stackoverflow(没有与我的问题匹配的问题)
  • 干净安装(删除所有文件,包括SDK)Android Studio 3.5
更新

我在我的机器上安装了LinuxMint,并在那里测试了AS 3.5,出于某种原因,即使是Android 7及以下的设备,一切都运行良好

以前的操作系统:Windows 10 1903

当前操作系统:Linux Mint 19.2


我想这个问题可能源于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