欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Installation did not succeed。apk安装失败的解决办法

程序员文章站 2024-01-14 20:30:40
其实有挺多原因会导致安装失败的,所以解决办法也不尽相同,下面列举一些解决办法。一先查看手机环境,是否打开USB调试,是否允许安装应用,手机是否处于打开状态,黑屏状态下也是会安装失败的。二清除缓存并重启AS可以尝试同步重启手机。三重试安装,可能会在安装提示的时候点错了,导致安装失败。四删除.gradle文件夹、.idea文件夹,build文件夹。然后重新编译会自动生成,这个可能是因为升级了AS,或者改了某些配置导致的版本不对称,所以删除重新编译即可。五编译期间注意查看控制台中buil...

其实有挺多原因会导致安装失败的,所以解决办法也不尽相同,下面列举一些解决办法。

先查看手机环境,是否打开USB调试,是否允许安装应用,手机是否处于打开状态,黑屏状态下也是会安装失败的。

清除缓存并重启AS
Installation did not succeed。apk安装失败的解决办法
可以尝试同步重启手机。

重试安装,可能会在安装提示的时候点错了,导致安装失败。

删除.gradle文件夹.idea文件夹build文件夹
然后重新编译会自动生成,这个可能是因为升级了AS,或者改了某些配置导致的版本不对称,所以删除重新编译即可。

编译期间注意查看控制台中buildlogcat、以及run的日志,可能是库升级或代码改动导致的错误。

List of apks:
[0] 'xxx-debug.apk' 

在AS的新版本中,有一些API变更。

在 Android Gradle 插件 3.0.0 及更高版本引入的 API 变更中,部分功能被移除,因此您现有的编译可能会出现异常。插件的更高版本可能会引入新的公共 API 来替代失效的旧功能。
在编译时可能无法正常修改变体输出
新插件不支持使用 Variant API 来操纵变体输出,但仍然支持使用该 API 处理某些简单任务,例如在编译时更改 APK 名称,具体如下所示:

 // If you use each() to iterate through the variant objects,
    // you need to start using all(). That's because each() iterates
    // through only the objects that already exist during configuration time—
    // but those object don't exist at configuration time with the new model.
    // However, all() adapts to the new model by picking up object as they are
    // added during execution.
    android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "${variant.name}-${variant.versionName}.apk"
        }
    } 

不过,涉及访问 outputFile 对象的复杂任务已不再受支持。这是因为在配置阶段不会再创建专门针对特定变体的任务。这导致插件不能预先了解所有的输出,但也缩短了配置时间。

具体可查看:https://developer.android.google.cn/studio/known-issues