You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

res/mipmap-anydpi-v26中ic_launcher.xml资源异常问题求助

启动图标资源加载异常问题排查与解决

问题现象

将应用从Android Studio运行至搭载Android 12的Samsung Galaxy S10设备,或关闭后重启已安装应用时,Logcat抛出资源未找到异常,导致应用启动失败。

Logcat报错信息

java.util.concurrent.ExecutionException: android.content.res.Resources$NotFoundException: Drawable com.compagny_name.app_name:mipmap/ic_launcher with resource ID #0x7f0f0000
    at java.util.concurrent.FutureTask.report(FutureTask.java:123)
    at java.util.concurrent.FutureTask.get(FutureTask.java:207)
    at android.content.res.Resources.fetchDrawableFromFutureCache(Resources.java:2751)
    at android.content.res.Resources.loadDrawable(Resources.java:1064)
    at android.content.res.Resources.getDrawableForDensity(Resources.java:1048)
    at android.content.res.Resources.getDrawable(Resources.java:987)
    at android.content.Context.getDrawable(Context.java:758)
    at com.android.internal.widget.ToolbarWidgetWrapper.setIcon(ToolbarWidgetWrapper.java:322)
    at com.android.internal.widget.ActionBarOverlayLayout.setIcon(ActionBarOverlayLayout.java:755)
    at com.android.internal.policy.PhoneWindow.setDefaultIcon(PhoneWindow.java:1884)
    at android.app.Activity.initWindowDecorActionBar(Activity.java:3575)
    at android.app.Activity.getActionBar(Activity.java:3508)
    at com.compagny_name.app_name.ui.container.MainActivity.onCreate(MainActivity.kt:433)
    at android.app.Activity.performCreate(Activity.java:8290)
    at android.app.Activity.performCreate(Activity.java:8270)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4085)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4277)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:226)
    at android.os.Looper.loop(Looper.java:313)
    at android.app.ActivityThread.main(ActivityThread.java:8751)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by: android.content.res.Resources$NotFoundException: Drawable com.compagny_name.app_name:mipmap/ic_launcher with resource ID #0x7f0f0000
Caused by: android.content.res.Resources$NotFoundException: File res/mipmap-anydpi-v21/ic_launcher.xml from drawable resource ID #0x7f0f0000
    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:1039)
    at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:825)
    at android.content.res.Resources$submitToFuture.call(Resources.java:2856)
    at android.content.res.Resources$submitToFuture.call(Resources.java:2838)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:920)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.app.Application.getResources()' on a null object reference
    at android.graphics.drawable.AdaptiveIconDrawable.<init>(AdaptiveIconDrawable.java:165)
    at android.graphics.drawable.AdaptiveIconDrawable.<init>(AdaptiveIconDrawable.java:152)
    at android.graphics.drawable.DrawableInflater.inflateFromTag(DrawableInflater.java:170)
    at android.graphics.drawable.DrawableInflater.inflateFromXmlForDensity(DrawableInflater.java:143)
    at android.graphics.drawable.Drawable.createFromXmlInnerForDensity(Drawable.java:1426)
    at android.graphics.drawable.Drawable.createFromXmlForDensity(Drawable.java:1385)
    at android.content.res.ResourcesImpl.loadXmlDrawable(ResourcesImpl.java:1071)
    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:1010)
    at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:825) 
    at android.content.res.Resources$submitToFuture.call(Resources.java:2856) 
    at android.content.res.Resources$submitToFuture.call(Resources.java:2838) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
    at java.lang.Thread.run(Thread.java:920)

主Activity相关代码

MainTheme() {
    Surface(
        modifier = modifier
          .fillMaxSize()
          .padding(0.dp)
          .background(Color.Transparent)
          .border(
              width = 0.dp,
              color = Color.Transparent,
              shape = RectangleShape
           ),
          shape = RectangleShape,
          color = Color.Transparent,
          contentColor = contentColorFor(Color.Transparent),
          tonalElevation = 0.dp,
          shadowElevation = 0.dp,
          border = null,
   ) {

    ....

    }
}

启动图标资源文件(ic_launcher.xml)

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

开发环境与设备信息

  • 设备:Samsung Galaxy S10(Android 12)
  • Android Studio:Jellyfish | 2023.3.1 RC
  • SDK Build-Tools:34.0.0
  • AGP:8.4.0-rc02
  • Kotlin:1.9.23
  • Compose:BOM 2024.04.00 | Compiler 1.5.11
  • Dagger:2.51.1
  • Min SDK:26
  • Compile SDK:34
  • Target SDK:34

解决方案

1. 检查Application类初始化

确保自定义Application在AndroidManifest.xml中正确注册,且onCreate()方法内没有提前执行资源加载逻辑,避免Application实例未完全就绪时触发图标加载。如果没有自定义Application,可暂时添加一个空实现测试。

2. 修复Adaptive Icon资源引用

  • 确认@drawable/ic_launcher_background和@drawable/ic_launcher_foreground存在于所有必要的drawable目录(如drawable-mdpi、drawable-hdpi等),且资源ID未与其他文件冲突。
  • Android 12+对monochrome图标有严格要求,若暂时不需要该属性,可移除<monochrome>标签后测试是否正常启动。

3. 调整Activity主题配置

若应用使用Compose且不需要ActionBar,在AndroidManifest.xml的MainActivity节点中设置无ActionBar主题:

<activity
    android:name=".ui.container.MainActivity"
    android:theme="@style/Theme.AppCompat.NoActionBar">
    <!-- 其他配置 -->
</activity>

或在自定义Compose主题中禁用ActionBar相关特性,避免系统自动尝试加载启动图标到ActionBar。

4. 清理缓存与重建项目

  • 执行Build > Clean Project和Build > Rebuild Project。
  • 卸载设备上的应用后重新安装。
  • 清除Android Studio缓存:File > Invalidate Caches...,重启IDE后重试。

5. 降级AGP至稳定版本

AGP 8.4.0-rc02为候选版本,可能存在兼容性问题。尝试降级至稳定版(如8.3.2),修改项目根目录下build.gradle或build.gradle.kts中的AGP版本:

plugins {
    id("com.android.application") version "8.3.2" apply false
    // 其他插件
}

内容的提问来源于stack exchange,提问作者andronaline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 03:04:54