【问题标题】:Android Studio 3.0 : canary 6 : android.content.res.Resources$NotFoundException inside Launching activityAndroid Studio 3.0:金丝雀 6:启动活动中的 android.content.res.Resources$NotFoundException
【发布时间】:2017-07-11 07:37:36
【问题描述】:

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

Main2Activity.java:10 行是我的活动 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.access$800(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.access$800(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) 

我该如何解决?

【问题讨论】:

  • 发布您的 XML 文件
  • 我也遇到过。相同的代码适用于 Android 6 和 7。适用于 Canary 5。
  • 这里也一样。我们的应用程序在 API 19 级别下崩溃。再次下载 Canary 5,我们的应用程序再次运行。 developer.android.com/studio/archive.html
  • 要创建可以在 android studio 之外启动的普通 apk,只需选择菜单 Build > Build apk...
  • 我在使用 Kitkat (API19) 的 Canary 9 上遇到了同样的问题。但是“Android menu =>build =>generate signed apk”对于发布模式运行正常。

标签: android android-4.4-kitkat android-studio-3.0


【解决方案1】:

似乎该问题与 Aapt 2 有关。

android.enableAapt2=false

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

【讨论】:

  • 我还有一个问题,我无法共享生成的 APK。通过 Fabric 或 Diawi 安装总是失败。仅使用 USB 调试安装。即使使用简单的“Hello World”项目也会发生这种情况。所以我的问题是,我们不能从 Canary 频道构建和共享 APK 吗?
  • 以上甚至没有为我在 3.0 Canary 6 上构建。它开始给出如下错误:Information:Gradle tasks [:mobile:assembleDebug] ...\src\main\res\layout\profile_activity。 xml 错误:(61, 39) 未找到与给定名称匹配的资源(在 'labelFor' 处,值为 '@id/my_profile_first_name_edit')。
  • @DroidLearner 我在 Diawi 上遇到了同样的问题,我分享发布版本而不是首次亮相,它对我来说很好。
  • @Farrukh Najmi 有可能您在声明之前使用了资源 (@id/my_profile_first_name_edit),请尝试像这样添加 (@+id/my_profile_first_name_edit)。
  • @nilesh 是的,将“@id”更改为“@+id”解决了我的问题。谢谢!
【解决方案2】:

我也有同样的问题。

android.enableAapt2=false

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

点击以下链接

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

【讨论】:

  • 在我的情况下,添加此行会导致膨胀错误。我已经搬回canary5。还可以选择在 api19 上不起作用的可绘制项目
【解决方案3】:

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

修复:
63623801ResourceNotFoundException 在升级到 Canary 6 后在 API 16 AVD 上运行 Kotlin 项目

Release notes

【讨论】:

    【解决方案4】:

    将此代码添加到我的项目中

    android.enableAapt2=false

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多