Android Studio 3.0:Canary 6:android.content.res.Resources启动中的 $NotFoundException activity

Android Studio 3.0 : canary 6 : android.content.res.Resources$NotFoundException inside Launching activity

我将 android-studio 3.0 从 canary 5 更新到 canary 6,突然我的应用程序在 KitKat(API 19) 上崩溃,堆栈跟踪如下。

Main2Activity.java:10 行是我的 activity onCreate() 方法中的第一行。

07-11 13:00:39.523 8913-8913/dcpl.com.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
  Process: dcpl.com.myapplication, PID: 8913
  java.lang.RuntimeException: Unable to start activity ComponentInfo{dcpl.com.myapplication/dcpl.com.myapplication.Main2Activity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f070058
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
      at android.app.ActivityThread.access0(ActivityThread.java:139)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:149)
      at android.app.ActivityThread.main(ActivityThread.java:5257)
      at java.lang.reflect.Method.invokeNative(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:515)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633)
      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:1173)
      at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:332)
      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
      at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:711)
      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195)
      at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:81)
      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:131)
      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:155)
      at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:31)
      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:55)
      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:205)
      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
      at dcpl.com.myapplication.Main2Activity.onCreate(Main2Activity.java:10)
      at android.app.Activity.performCreate(Activity.java:5411)
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) 
      at android.app.ActivityThread.access0(ActivityThread.java:139) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:149) 
      at android.app.ActivityThread.main(ActivityThread.java:5257) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633) 
      at dalvik.system.NativeStart.main(Native Method) 

我该如何解决?

这个问题似乎与 Aapt 2 有关。

android.enableAapt2=false

在你的 gradle.properties 文件中,它为我解决了这个问题。

我有同样的问题。

android.enableAapt2=false

AAPT2。我们正在继续稳定支持增量资源处理的 AAPT2。如果您的构建由于资源处理问题而失败,请向我们发送错误报告。要暂时禁用 AAPT,请在 gradle.properties 文件中设置 android.enableAapt2=false。 Roboelectric 当前不兼容 AAPT2

按照以下link

https://androidstudio.googleblog.com/2017/06/android-studio-30-canary-5-is-now.html

在我的项目中添加这段代码

android.enableAapt2=false

解决了我的一个问题:使用 Android Studio 3.0:canary 6,默认情况下生成一个签名的 APK,"AXmlResourceParser.java"(axmlprinter2-2.0.jar )

我遇到了同样的问题。要解决它,只需更新到 Android Studio 3.0 Canary 7.

Fixes:
63623801 ResourceNotFoundException running Kotlin project on API 16 AVD after upgrading to Canary 6

Release notes