Исключение ClassNotFoundException ошибки AndroidRuntime при использовании библиотеки Android (AAR)

#android #android-gradle-plugin #build.gradle #gradle-plugin #aar

Вопрос:

Я создаю библиотеку AAR и добавляю ее в свой проект Android.

Он успешно компилируется, но когда я запускаю приложение, оно показывает ошибку:

 ... AndroidRuntime: java.lang.ClassNotFoundException: Didn't find class "com.example.application.R.layout"
 

Затем я извлекаю библиотеку AAR, там нет R.Class в class.jar.

Есть ли у кого-нибудь такая же проблема, как у меня? Знаете ли вы, как генерировать R.Class в библиотеке AAR, чтобы избежать этой проблемы?

Комментарии:

1. Пожалуйста, попробуйте удалить это из библиотеки и повторно импортировать этот файл aar снова по другому пути, а также проверьте, где вы правильно определили его в gradle, например, файлы реализации («libs/xyz.aar») или проверьте путь R. макет с пакетом эта идея может вам помочь

2. @Ghanshyam Спасибо тебе. Я делаю, как вы сказали, и проект очистки/восстановления. Затем приложение работает, эта ошибка не отображается. Но я не знаю, в чем основная причина. По — прежнему нет R.Class в class.jar итак, почему эти классы могут связываться друг с другом.

3. Класс R не упаковывается в Jar проект библиотеки не генерирует класс R, от которого они зависят. Только проекты приложений генерируют классы библиотеки R вместе со своими собственными. Я обновил его в подробном решении этой проблемы в ответе ниже, чтобы помочь еще одному человеку, пожалуйста, проверьте

4. Обратитесь к httpsstackoverflow.comquestions34915501aar-support-in-android-mk-the-apk-contain-no-r-java-which-packagename-is-aar

Ответ №1:

Пожалуйста, попробуйте удалить это из библиотеки и повторно импортировать этот файл aar снова по другому пути, а также проверьте, где вы правильно определили его в gradle, например, файлы реализации («libs/xyz.aar») и очистите сборки или проверьте путь к R. макет с пакетом эта идея может вам помочь

Класс R больше не упаковывается в выходные данные jar библиотечных проектов. Библиотечный проект не создает класс R для библиотечных проектов, от которых они зависят. Только проекты основных приложений генерируют классы библиотеки R наряду со своими собственными

Пожалуйста, перейдите по ссылке ниже

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects