#android-gradle-plugin #gradle-plugin #android-viewbinding
Вопрос:
Я попытался перейти на новый плагин Gradle, но, поскольку у нас есть несколько пользовательских макетов для тестов Android, он завершается ошибкой с сообщением «класс R не найден» для тестов Android. Я не смог найти ни одного источника, говорящего о каких-либо изменениях в поведении в этой области.
Ошибка выглядит так и, по-видимому, связана с изменением представления или просто с тем фактом, что класс R не сгенерирован.
/pathToTheApp/build/generated/data_binding_base_class_source_out/debugAndroidTest/out/com/package1/test/databinding/CustomViewActivityBinding.java:12: error: cannot find symbol
import package.name.test.R;
^
symbol: class R
location: package package.name.test
Ответ №1:
У меня возникла эта проблема в наших тестах Android после обновления до AGP 7.0. Наш тестовый класс R не удалось найти. Мне удалось исправить это, продублировав testApplicationId
в, казалось бы, новое testNamespace
поле.
android {
testNamespace = "com.example.tests"
defaultConfig {
testApplicationId "com.example.tests"
}
}
Я думаю, что это должно работать без него, так что, возможно, это ошибка плагина, но в документах говорится:
Пространство имен, используемое компонентами Android test и модульного тестирования для созданных классов R и BuildConfig