【问题标题】:ResourceNotFoundException running Kotlin project on API 16 AVD after upgrading to Canary 6ResourceNotFoundException 在升级到 Canary 6 后在 API 16 AVD 上运行 Kotlin 项目
【发布时间】:2017-12-16 04:40:01
【问题描述】:

构建:3.0 Canary 6、AI-171.4163606、201707072113、

AI-171.4163606,JRE 1.8.0_152-release-884-b01x64 JetBrains s.r.o,OS Mac OS X(x86_64) v10.12.4 未知,屏幕 1440x900、1920x1080、1080x1920;视网膜

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.<init>(AppCompatDelegateImplBase.java:128)
    at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
    at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29)
    at android.support.v7.app.AppCompatDelegateImplV14.<init>(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.<init>(AppCompatDelegateImplBase.java:128)
    at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
    at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29)
    at android.support.v7.app.AppCompatDelegateImplV14.<init>(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 模拟器信息 ******

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 信息 ******

Gradle 版本 4.1

安卓插件版本 3.0.0-alpha6

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

模块构建工具版本 25.0.3

Android SDK 工具版本 26.0.2

【问题讨论】:

标签: android android-studio gradle android-gradle-plugin


【解决方案1】:

修复在 AAPT2 - 请使用最新的构建工具(27.0.2,如果我没记错的话),它将包含该修复。

我在这里找到了解决方法:Android Studio 3.0 : canary 6 : android.content.res.Resources$NotFoundException inside Launching activity

如果任何问题仍然存在,请通过Google issue tracker 报告,他们将重新打开进行检查。

【讨论】:

    【解决方案2】:

    gradle.properties文件中添加

    android.enableAapt2=false
    

    这可能会有所帮助。检查this link

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多