Android - библиотеки поддержки 23.2.0 вызывают сбой приложения

Мое приложение хорошо работает с библиотеками поддержки 23.1.0 или 23.1.1, но когда я начинаю использовать 23.2.0, оно вылетает при запуске. Я использую пять вспомогательных библиотек, но, похоже, эти две вызывают сбой:

com.android.support:appcompat-v7:23.2.0

com.android.support:дизайн:23.2.0

У меня есть эта проблема на моем галактике нексус (API 17), но не на моем Nexus 7 (API 22). Кто-нибудь знает, в чем может быть проблема? Вот мой файл градиента:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.ikarirobotics.aichordfinder"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-annotations:23.2.0'
    compile "com.android.support:appcompat-v7:23.2.0"
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:cardview-v7:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'
}

Мой макет — это всего лишь фрейм, в котором я размещаю соответствующий в данный момент фрагмент:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="HomeActivity"
    tools:ignore="MergeRootFrame" />

С помощью отладчика я обнаружил, что сбой происходит, когда основная активность вызывает setContentView():

java.lang.reflect.InvocationTargetException

java.lang.RuntimeException: невозможно запустить активность .Панель инструментов

Моя активность расширяет AppCompatActivity, и я использую панель действий поддержки. Любые идеи о том, как решить эту проблему? :(


person CesarPim    schedule 25.02.2016    source источник
comment
какие-нибудь журналы в градле?   -  person Rahul    schedule 25.02.2016
comment
журналы gradle просто говорят, что вся сборка прошла успешно. Я добавил информацию, которую нашел с помощью отладчика. Кажется, это связано с панелью инструментов.   -  person CesarPim    schedule 25.02.2016
comment
вы используете векторные рисунки?   -  person Lukas Lechner    schedule 25.02.2016
comment
Нет. Более того, первый фрагмент — это только список текстовых записей и FAB.   -  person CesarPim    schedule 25.02.2016
comment
Не могли бы вы показать свой файл макета здесь?   -  person Jaden Gu    schedule 26.02.2016
comment
Добавил в свой пост! Это просто макет кадра, в который я помещаю фрагмент.   -  person CesarPim    schedule 26.02.2016


Ответы (5)


Похоже, что в версии 23.2.0 Google работает с ошибкой мутации. См. проблему здесь. Возврат к версии 23.1.1 должен быть нормально до следующего релиза с исправлением ошибок.

person opt05    schedule 25.02.2016
comment
Ваша ссылка, кажется, о спиннерах. Как вы думаете, это та же проблема? - person CesarPim; 25.02.2016
comment
Я столкнулся с той же проблемой. 23.2.0, похоже, не хватает этого рисунка: abc_ic_ab_back_mtrl_am_alpha.png Я не могу понять, как вернуться к 23.1. Кто-нибудь может мне помочь? Я удалил библиотеку поддержки V23.2 с помощью диспетчера SDK, но не вижу, где вместо этого можно установить 23.1... - person Greg; 04.05.2016
comment
Я скопировал отсутствующий рисунок из предыдущего проекта, используя 23.1, в свою папку с возможностью рисования, и он снова работает, но это выглядит как уродливый хак... - person Greg; 04.05.2016

То же самое происходит со мной. Я частично исправил это, вернувшись к версии 23.1.1 на support:design.

person Juan Santiago Acevedo Correa    schedule 25.02.2016
comment
если вы найдете решение для использования 23.2.0, пожалуйста, опубликуйте его здесь - person CesarPim; 25.02.2016
comment
Я бы не называл исправление и восстановление одного и того же. - person Jared Burrows; 29.02.2016

@CesarPim да, у меня такая же проблема с CheckBox, хотя я могу решить эту проблему, создав abc_btn_check_material.xml внутри папки с возможностью рисования и добавив следующие строки, я не могу быть уверен, где он сломается дальше. Вы можете найти чертежи и код селектора по этой ссылке: https://github.com/NativeScript/nativescript-plugin-appcompat/tree/master/platforms/android/appcompat/res/drawable

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/abc_btn_check_to_on_mtrl_015" />
    <item android:drawable="@drawable/abc_btn_check_to_on_mtrl_000" />
</selector>
person DoubleK    schedule 29.02.2016
comment
О, спасибо за информацию. Так можно ли с уверенностью сказать, что проблема на стороне Google? Кажется, моя проблема связана с моей панелью инструментов, на которой нет ничего, кроме заголовка.. это действительно странно. - person CesarPim; 29.02.2016

Просто у меня была проблема. Быстрое обновление через SDK Manager, похоже, решило проблему.

Кстати, ни одна из моих зависимостей build.gradle на самом деле не использовала 23.2.0, но я все равно получал ошибку. Попытка «понизить версию» до 23.1.1 не была для меня вариантом, поскольку я уже использовал эту версию.

person PGMacDesign    schedule 04.03.2016
comment
Что ты имеешь в виду? Какое обновление через sdk? Моя проблема возникает, когда я использую 23.2.0, а не когда я использую 23.1.1. - person CesarPim; 06.03.2016

Как и предсказывали некоторые здесь, проблема исчезла, когда я начал использовать библиотеки поддержки 23.2.1. Спасибо всем за поддержку.

person CesarPim    schedule 11.03.2016
comment
Вы хотели сказать 23.1.1 или 23.2.1? Потому что 23.2.1 у меня не работает, хоть я и скачал - person Radu; 15.03.2016
comment
я имею в виду 23.2.1. Проблема существует только в 23.2.0. И 23.1.1, и 23.2.1 работают нормально (по крайней мере, в моем случае). Вы изменили свой файл gradle после загрузки? - person CesarPim; 17.03.2016
comment
Конечно, я изменил файл gradle после загрузки библиотеки поддержки 23.2.1, но безрезультатно. Просто пишет, что не может найти. Я также использую библиотеку поддержки по частям: cardview, :whatever....и т.д. Может быть, поэтому. Можете ли вы вставить строку библиотеки поддержки компиляции Gradle? Если у вас только один? - person Radu; 17.03.2016
comment
@Radu, как вы видите в моем посте, у меня это в несколько строк. Теперь, используя 23.2.1: зависимости { скомпилировать 'com.android.support:support-annotations:23.2.1' скомпилировать 'com.android.support:appcompat-v7:23.2.1' скомпилировать 'com.android.support:design: 23.2.1' скомпилировать 'com.android.support:cardview-v7:23.2.1' скомпилировать 'com.android.support:recyclerview-v7:23.2.1' } - person CesarPim; 21.03.2016