android gradle plugin 3.0.0-alpha2:错误膨胀类android.support.v7.widget.FitWindowsLinearLayout

时间:2017-05-27 09:49:48

标签: android-gradle

将android gradle插件从 3.0.0-alpha1 升级到 3.0.0-alpha 2 后,我的应用程序不再启动: stacktrace的一部分:

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了。

有什么想法吗?

BTW:我已经尝试过进行各种清理,无效缓存,重启等,如SO所述。

2 个答案:

答案 0 :(得分:7)

我认为这是一个暂时的错误。 由于某种原因,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.** { *; }

我希望它可以帮助你:)

答案 1 :(得分:0)

<强>更新
这个错误已经修复 - 它适用于 gradle plugin 3.0.0-alpha 4

ORIGINAL 回答(保留供参考)

实际上我没有为我的调试版本启用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.** { *; }