Этот класс должен быть общедоступным (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
" строгость.
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!