Android11 之后获取ApplicationInfo
targetSdk 29
android 11 之前获取ApplicationInfo 直接调用api即可获取
packageManager.getApplicationInfo("tv.danmaku.bili", 0).also {
Log.i("MainActivity", "onCreate: ${it.sourceDir}")
}
// I/MainActivity: onCreate: /data/app/~~_Fkm1t2JhGBy6qcCq3Jb9g==/tv.danmaku.bili-luBQpNiMLG8Nj_LHGltviw==/base.apk
targetSdk >29
会报错
Caused by: android.content.pm.PackageManager$NameNotFoundException: tv.danmaku.bili
解决方式
- 第一种方式:修改target <=29
- 第一种方式: 修改manifest 文件
<manifest >
<queries>
<package android:name="tv.danmaku.bili" />
<package android:name="com.yipiao" />
<package android:name="..." />
</queries>
</manifest>
在Android11及之后,当targetSdk超过29时,直接获取ApplicationInfo会遇到问题。针对这一变化,文章介绍了两种解决方案,包括保持targetSdk在29及以下,或者修改manifest文件来适应新规定。
1033

被折叠的 条评论
为什么被折叠?



