ResourceNotFoundException在升级到Canary 6后,在API 16 AVD上运行Kotlin项目

Build:3.0 Canary 6,AI-171.4163606,201707072113,

JetBrains sro,OS Mac OS X(x86_64)v10.12.4未知,屏幕1440×900,1920×1080,1080×1920; JRE 1.8.0_152-release-884-b01x64 JetBrains sro, 视网膜

tl; dr步骤重现:

使用Canary 6 Android Studio创建一个全新的Android项目,并在API级别16(以下信息)针对Nexus 4 AVD运行。 ResourceNotFoundException将被抛出(下面的堆栈跟踪)。 运行在API级别25的Nexus 5 AVD上可以成功运行并获得预期结果。

07-12 10:56:41.671 2865-2865/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bartonstanley.testforcanary6/com.bartonstanley.testforcanary6.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f060052 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f060052 at android.content.res.Resources.getValue(Resources.java:1013) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188) at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:755) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193) at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:88) at android.support.v7.app.AppCompatDelegateImplBase.(AppCompatDelegateImplBase.java:128) at android.support.v7.app.AppCompatDelegateImplV9.(AppCompatDelegateImplV9.java:149) at android.support.v7.app.AppCompatDelegateImplV11.(AppCompatDelegateImplV11.java:29) at android.support.v7.app.AppCompatDelegateImplV14.(AppCompatDelegateImplV14.java:54) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:202) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183) at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520) at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) at com.bartonstanley.testforcanary6.MainActivity.onCreate(MainActivity.kt:9) at android.app.Activity.performCreate(Activity.java:5008) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

******正在进行的项目的******跟踪

 07-12 08:18:47.842 13073-13073/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bartonstanley.tododoingdone/com.bartonstanley.tododoingdone.views.root.RootActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f070058 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070058 at android.content.res.Resources.getValue(Resources.java:1013) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188) at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:755) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193) at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:88) at android.support.v7.app.AppCompatDelegateImplBase.(AppCompatDelegateImplBase.java:128) at android.support.v7.app.AppCompatDelegateImplV9.(AppCompatDelegateImplV9.java:149) at android.support.v7.app.AppCompatDelegateImplV11.(AppCompatDelegateImplV11.java:29) at android.support.v7.app.AppCompatDelegateImplV14.(AppCompatDelegateImplV14.java:54) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:202) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183) at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520) at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) at com.bartonstanley.tododoingdone.views.root.RootActivity.onCreate(RootActivity.kt:24) at android.app.Activity.performCreate(Activity.java:5008) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

***** Nexus 4 API级别16模拟器info ******

 Emulator ADB serial number emulator-5554 Android version 4.1 (Jelly Bean) - API 16 (Rev 5) Emulator version 26.1.2-4077558 Latest available emulator version 26.1.2-4077558 (Stable update channel) Android SDK tools version 26.0.2 Host CPU Model 2.5 GHz Intel Core i7 Device name hw.device.name: Nexus 4 

所有查看详细信息

 Name: Nexus_4_API_16 CPU/ABI: Google APIs Intel Atom (x86) Path: /Users/bstanley/.android/avd/Nexus_4_API_16.avd Target: google_apis [Google APIs] (API level 16) Skin: nexus_4 SD Card: 100M hw.dPad: no hw.lcd.height: 1280 runtime.network.speed: full hw.accelerometer: yes hw.device.name: Nexus 4 vm.heapSize: 80 skin.dynamic: yes hw.device.manufacturer: Google hw.lcd.width: 768 hw.gps: yes hw.initialOrientation: Portrait image.androidVersion.api: 16 hw.audioInput: yes image.sysdir.1: system-images/android-16/google_apis/x86/ tag.id: google_apis showDeviceFrame: yes hw.camera.back: emulated hw.mainKeys: no AvdId: Nexus_4_API_16 hw.camera.front: emulated hw.lcd.density: 320 avd.inidisplayname: Nexus 4 API 16 hw.gpu.mode: auto hw.device.hash2: MD5:cd87b62509afda15361db744f4aa1ec0 hw.ramSize: 1536 hw.trackBall: no PlayStore.enabled: false hw.battery: yes hw.cpu.ncore: 4 hw.sdCard: no tag.display: Google APIs runtime.network.latency: none hw.keyboard: no hw.sensors.proximity: yes disk.dataPartition.size: 800M hw.sensors.orientation: yes avd.ini.encoding: UTF-8 hw.gpu.enabled: yes 

****** Gradle info ******

Gradle版本4.1

Android插件版本3.0.0-alpha6

模块编译Sdk版本API 26:Android 8.0(O)

模块构建工具版本25.0.3

Android SDK工具版本26.0.2

修复程序是在AAPT2中 – 请使用最新的构建工具(如果我没有弄错,请使用27.0.2),它将包含该修复程序。

我在这里find一个解决方法: Android Studio 3.0:canary 6:android.content.res.Resources $ NotFoundException里面的启动活动

如果问题仍然存在,请在Google问题跟踪器中报告,他们将重新审核。

gradle.properties文件中添加

 android.enableAapt2=false 

这可能有帮助。 检查这个链接