首次安装Android应用出现java.io.IOException资源加载失败问题求助
首次安装应用触发I/O错误但可正常运行的排查方案
问题现象
首次安装应用(包括从未安装过或卸载后重装场景)时,系统日志会抛出APK文件I/O错误及资源加载失败异常,但从应用菜单启动后,应用功能可正常使用。
错误日志
E Failed to open APK '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk' I/O error 2022-09-26 16:12:40.817 8427-8606 android.vendin pid-8427 E Failed to open APK '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk' I/O error 2022-09-26 16:12:40.821 8427-8606 ResourcesManager pid-8427 E failed to add asset path '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk' java.io.IOException: Failed to load asset path /data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk at android.content.res.ApkAssets.nativeLoad(Native Method) at android.content.res.ApkAssets.<init>(ApkAssets.java:291) at android.content.res.ApkAssets.loadFromPath(ApkAssets.java:140) at android.app.ResourcesManager.loadApkAssets(ResourcesManager.java:374) at android.app.ResourcesManager.access$000(ResourcesManager.java:67) at android.app.ResourcesManager$ApkAssetsSupplier.load(ResourcesManager.java:146) at android.app.ResourcesManager.createAssetManager(ResourcesManager.java:451) at android.app.ResourcesManager.createResourcesImpl(ResourcesManager.java:538) at android.app.ResourcesManager.findOrCreateResourcesImplForKeyLocked(ResourcesManager.java:587) at android.app.ResourcesManager.createResources(ResourcesManager.java:866) at android.app.ResourcesManager.getResources(ResourcesManager.java:938) at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:2225) at android.app.ApplicationPackageManager.getResourcesForApplication(ApplicationPackageManager.java:1672) at android.app.ApplicationPackageManager.getDrawable(ApplicationPackageManager.java:1437) at android.app.ApplicationPackageManager.loadUnbadgedItemIcon(ApplicationPackageManager.java:2950) at android.app.ApplicationPackageManager.loadItemIcon(ApplicationPackageManager.java:2929) at android.content.pm.PackageItemInfo.loadIcon(PackageItemInfo.java:271) at android.app.ApplicationPackageManager.getApplicationIcon(ApplicationPackageManager.java:1501) at fva.a(PG:5) at fvg.l(PG:1) at qt.aci(PG:46) at fuj.k(PG:3) at fua.f(PG:3) at fua.i(PG:3) at fve.i(Unknown Source:0) at fvh.d(Unknown Source:10) at fvh.e(PG:3) at ftr.apply(PG:168) at ahmn.e(PG:2) at ahmo.run(PG:9) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at jjd.run(PG:17) at java.lang.Thread.run(Thread.java:923) 2022-09-26 16:14:08.111 13577-13577 studio.deploy pid-13577 E InstallClient: Could not copy '/data/local/tmp/.studio/tmp/31c79e06/install_server' to '/data/data/com.mml.dummyapp_kotlin/code_cache/install_server-31c79e06: out='', err='run-as: unknown package: com.mml.dummyapp_kotlin run-as: unknown package: com.mml.dummyapp_kotlin ' 2022-09-26 16:14:08.129 13577-13577 studio.deploy pid-13577 E run-as: unknown package: com.mml.dummyapp_kotlin 2022-09-26 16:14:08.158 13577-13577 studio.deploy pid-13577 E Could not get package user id: run-as: unknown package: com.mml.dummyapp_kotlin 2022-09-26 16:14:08.181 13577-13577 studio.deploy pid-13577 E Could not find apks for this package: com.mml.dummyapp_kotlin
应用Manifest内容
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:name=".BaseApplication" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" android:theme="@style/Theme.DummyAppKotlin" android:usesCleartextTraffic="true" tools:targetApi="33"> <activity android:name=".ui.DetailsActivity" /> <activity android:name=".ui.MainActivity" android:configChanges="orientation|screenSize" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.mml.dummyapp_kotlin.util.MyFirebaseMessagingService" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <!-- Set custom default icon. This is used when no icon is set for incoming notification messages. --> <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/activity_feed" /> <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-6982469603053718~7540735179" /> </application> </manifest>
排查及解决方法
- 存储I/O延迟或权限异常:系统安装完成后立即读取APK资源,但存储设备未完成文件同步,导致临时I/O错误。可尝试:
- 重启测试设备,清除存储缓存异常
- 清理Android Studio缓存:依次点击
File > Invalidate Caches... > Invalidate and Restart
- ADB部署工具异常:日志中
studio.deploy报错显示run-as无法识别包名,属于部署流程问题:- 执行
adb kill-server && adb start-server重启ADB服务,重新连接设备 - 卸载应用后手动清除设备上的残留目录:
adb shell rm -rf /data/app/~~*/com.mml.dummyapp_kotlin-*
- 执行
- 资源有效性检查:系统加载应用图标时触发错误,需确保资源存在且格式正确:
- 验证
@drawable/activity_feed、@mipmap/ic_launcher等资源文件是否存在,无损坏 - 确认Manifest中所有资源引用路径正确
- 验证
内容的提问来源于stack exchange,提问作者Dr Mido
相关产品推荐
相关产品推荐

