Android 12 apk Installation did not succeed
Posted KdanMin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 12 apk Installation did not succeed相关的知识,希望对你有一定的参考价值。
1、跳坑原因
事情本质是这样的,简单描述下,之前我的小米10青春版是android 10系统 ,因为后面公司要兼容Android 12(sdk 31),于是我昨天把手机升级到Android 12,然后再测试下手机闪光灯功能,一大早高高兴兴把代码写好,就二个按钮打开或者关闭,然后插上手机打开开发者模式,开开心心的运行代码,然后出现上面的错误,之前 Android 10上面是没有出现这个问题。
2、踩坑过程
于是我跟大多数cv工程师一样,英语水平三级的我,直接打开百度搜索引擎,然后给我返回一堆的信息,于是我按照博客比如像这样的
2.1 说在gradle.properties文件中添加android.injected.testonly =false,然后sync一下。
2.2 说在Androidmainfest.xml中添加taskAffinity属性“."
2.3 在开发者选项里面 打开USB安装开关 上面博客解决方案都无效!,都无效!都无效!重要的事情说三遍!!!
2.4 于是我开始复制这段错误文字Google翻译一遍,高三我还是英语课代表,丢脸了。此处省略一脸尴尬。
3、解坑
3.1 于是我再想既然网上都是一些乱起八糟拿去Android developer开发找找,然后发现关于intent启动的解析然后点进去看了下。
3.2 只有官方文档最靠谱!最靠谱!最靠谱!
3.3 在AndroidMainfest.xml activity中显示设置exported="true"属性 其他四大组件也是类似设置方案 需要声明这个exported这个属性
3.4 然后在Android12 小米10青春版手机上完美运行,点继续安装即可可以正常打开或者关闭闪光灯。
3.5 到这里可能有些同学会问?为什么在 Android 12 上需要显示声明 android:exported 属性?
android:exported 属性的默认值取决于是否包含 <intent-filter>,如果包含 <intent-filter> 那么默认值为 true,否则 false。
当 android:exported="true" 时,如果不做任何处理,可以接受来自其他 App 的访问 直接启动界面
当 android:exported="false" 时,限制为只接受来自同一个 App 或一个具有相同 user ID 的 App 的访问 不启动界面。
4、总结:
4.1、多查官方文档,这个最靠谱。重要事情说三遍!!!
4.2、看日志输出,英语不行像我这种水平直接找翻译软件,不要怕丑!
4.3、多尝试几次,找到原因之后。这里推荐Stack Overflow找答案或者Github有很多大佬都踩过了。
5.感谢
https://github.com/square/leakcanary/pull/2074
https://github.com/microsoft/appcenter-sdk-android/pull/1520
行为变更:以 Android 12 为目标平台的应用 | Android Developers
以上是关于Android 12 apk Installation did not succeed的主要内容,如果未能解决你的问题,请参考以下文章
Android 12 apk Installation did not succeed
Android 12 apk Installation did not succeed
MTK6833_android12_user版本修改adb_root_&_apk_root
Android系统-MTK6833_android12_user版本修改adb_root_&_apk_root
当我制作签名的 APK 时,我的 Android 本地数据库不起作用
Android 12 S artifact_path_requirements Offending entries Build failed ckati failed with/ aosp预制apk