Подтвердить что ты не робот

Android gradle плагин 3.0.0-alpha2: ошибка раздувания класса android.support.v7.widget.FitWindowsLinearLayout

после обновления плагина 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: Я уже пробовал делать все виды очистки, invalidate-caches, перезагрузки и т.д., как упоминалось в этом qaru.site/info/119952/....

4b9b3361

Ответ 1

Я думаю, что это временная ошибка. Proparbly Proguard удаляет этот класс по какой-то причине, поэтому это исключение происходит. На данный момент самым простым решением может быть отключить Proguard в файле build.gradle. Если вы все еще хотите сохранить его, вам придется изменить настройки proguard.

Это то, что я сделал и что сработало для меня:

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

Поскольку у меня также были проблемы с ограничениями и конструкцией libray, я добавил следующее:

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

Надеюсь, это вам поможет:)

Ответ 2

UPDATE
Эта ошибка уже исправлена ​​- она ​​работает для меня с gradle плагином 3.0.0-alpha 4

ОРИГИНАЛ ответ (сохранен для справки)

На самом деле у меня не было ProGuard для моих отладочных сборников, но Shrinker плагина Android gradle (который использует те же файлы 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.** { *; }