Этот класс должен быть общедоступным (android.support.v7.internal.widget.ActionBarView.HomeView)

Я пытаюсь создать приложение для Android, которое использует 3 блесны. Я продолжаю получать эту ошибку, и я не могу понять, как ее исправить. Этот класс должен быть общедоступным (android.support.v7.internal.widget.ActionBarView.HomeView)

8 ответов

Решение

В библиотеке "v7-appcompat":

Настройки -> Настройки Android Lint

Найдите "Instantiatable" и установите "Предупреждение".

Если вы используете Eclipse:

Project > Clean > OK

Или попробуйте:

Preferences -> Android Lint Preferences

Ищи Instantiatable и установить как Warning,

http://developer.android.com/tools/debugging/improving-w-lint.html

Это сработало для меня.

Перейти в библиотеку appcompat_v7 -> Properties -> Android Lint Preferences -> Instantiatable -> Выбрать "Warning" строгость.

Android Lint Проверяет

Instantiatable Summary: гарантирует, что классы, зарегистрированные в файле манифеста, являются инстанцируемыми

Приоритет: 6 / 10 Степень опасности: предупреждение Категория: правильность

Действия, сервисы, широковещательные приемники и т. Д., Зарегистрированные в файле манифеста, должны быть "нестабильными" системой, что означает, что класс должен быть общедоступным, у него должен быть пустой общедоступный конструктор, и если это внутренний класс, он должен быть статический внутренний класс.

Я нашел решение, в файле project.properties, просто замените строку, говорящую

android.library.reference.1=../appcompat_v7_3 

с

android.library.reference.1=../appcompat_v7

Это решило проблему для меня по крайней мере.

Вы также можете сделать это вручную в файле build.gradle:

lintOptions {
    abortOnError false
    disable "Instantiatable"
}

Это не верное решение, но, возможно, поможет.

Создать проект с более высоким уровнем API, чем 8.

Всякий раз, когда я выбираю минимальный обязательный SDK для уровня API 9 вместо 8, эта ошибка не возникает.

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

Я знаю, что этот вопрос довольно старый. Однако я хотел бы добавить обновленный ответ, чтобы решить эту проблему.

      android {
    .
    .
    .
    lintOptions {
        warning("Instantiatable")
    }
}

Добавьте приведенные выше строки в свой файл gradle. По сути, это означает, что линтер должен рассматривать правило Instantiatable как предупреждение, а не ошибку.

Затмение внутри вопросов установки. Windows -> "Настройки" -> Android -> "Проверка ошибки Lint" -> введите "Instantiatable" в разделах "Проблемы" -> выберите "Поиск содержимого" -> в правом нижнем углу. Предупреждение о выборе уровня серьезности -> OK!

Другие вопросы по тегам