【问题标题】:android gradle plugin 3.0.0-alpha2: Error inflating class android.support.v7.widget.FitWindowsLinearLayoutandroid gradle 插件 3.0.0-alpha2:膨胀类 android.support.v7.widget.FitWindowsLinearLayout 时出错
【发布时间】:2017-10-28 03:53:05
【问题描述】:

在将 android gradle 插件从 3.0.0-alpha1 升级到 3.0.0-alpha2 后,我的应用程序不再启动:堆栈跟踪的一部分:

05-27 09:14:57.692 3015-3015/com.tmtron.dscontrol2app.debug E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.tmtron.dscontrol2app.debug, PID: 3015
  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tmtron.dscontrol2app.debug/com.tmtron.dscontrol2.gui.MainActivity}: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.FitWindowsLinearLayout" on path: DexPathList[[zip file "/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/base.apk", zip file "/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/split_lib_dependencies_apk.apk", zip file "/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/split_lib_slice_0_apk.apk", zip file "/data/app/com.tmtron.dscontrol2app.debug-..."/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/lib/x86, /system/lib, /system/vendor/lib]]
      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
      at com.tmtron.dscontrol2.gui.MainActivity.onCreate(MainActivity.java:41)
      at android.app.Activity.performCreate(Activity.java:6954)
05-27 09:14:57.693 3015-3015/com.tmtron.dscontrol2app.debug E/AndroidRuntime:     
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)

似乎找不到 android.support.v7.widget.FitWindowsLinearLayout 类了。

有什么想法吗?

顺便说一句:我已经尝试过在SO 中提到的各种清理、无效缓存、重启等。

【问题讨论】:

  • 只是为了增加这个问题。自定义视图和 3.0.0-alpha2 的混淆似乎也存在问题。有没有人找到更新日志之类的?
  • 是的,现在完全崩溃了。

标签: android-gradle-plugin


【解决方案1】:

更新
这个错误已经修复 - 它适用于我 gradle plugin 3.0.0-alpha4

原创答案(留作参考)

实际上我没有为我的调试版本启用 ProGuard,但 Shrinker of the Android Gradle Plugin(它使用相同的 proguard 文件。

此问题的临时解决方法:将以下说明添加到 proguard-rules.pro 文件:

-keep class android.support.v7.widget.** { *; }
-keep class android.support.v4.widget.** { *; }
-keep class android.support.design.** { *; }
-keep class com.bluelinelabs.conductor.** { *; }

【讨论】:

    【解决方案2】:

    我认为这是一个暂时的错误。 可能 Proguard 出于某种原因删除了此类,因此发生了此异常。 目前最简单的解决方案可能是在 build.gradle 文件中禁用 Proguard。如果您仍想保留它,则必须更改您的 proguard 设置。

    这就是我所做的并且对我有用:

    -dontwarn android.support.v7.**
    -keep class android.support.v7.widget.** { *; }
    

    因为我也遇到了约束和设计库的问题,所以我添加了这个:

    -dontwarn android.support.constraint.** -keep class android.support.constraint.** { *; } -dontwarn android.support.design.** -keep class android.support.design.** { *; }

    希望对你有帮助:)

    【讨论】:

    • 非常感谢。有人应该将此错误报告给 AS Canary 团队。
    • 看起来它在 alpha3 中已修复
    猜你喜欢
    • 1970-01-01
    • 2017-07-06
    • 2014-10-18
    • 2015-01-06
    • 2017-07-29
    • 2014-12-21
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    相关资源
    最近更新 更多