Я создал проект библиотеки, выполнив следующие действия:R.String хватает для Android Studio Library Project
- Создать нормальный проект Android без деятельности
- Изменение
apply plugin: 'com.android.application'
кapply plugin: 'com.android.library'
из build.gradle - Удалить строку
applicationId "..."
от build.gradle
Затем я включил проект библиотеки в моем приложении:
- Обновленный мой settings.gradle к
include ':app', '..:NotifierLib:library'
- Добавлен модуль библиотеки в
File -> Project Structure ... -> app -> Dependencies -> Add -> Module dependency
Все отлично работает, я могу построить приложение и запустить его на моем устройстве, но он сработает, когда компонент, указанный в библиотеке, пытается получить доступ к ресурсу библиотеки. В моем случае я реализовал BroadcastReceiver и PreferenceItem. Если BroadcastReceiver называется, он обновляет элемент и поэтому обращается к некоторым строковые ресурсы:
String key = context.getResources().getString(R.string.myKey);
Однако, когда BroadcastReceiver вызывается, приложение вылетает со следующей ошибкой:
java.lang.NoClassDefFoundError: goe.math.uni.notifierlib.R$string
Как вы видите, приложение пытается получить доступ к R.string
в библиотеке, что не удается, хотя ресурсы существуют в библиотеке. Что я делаю не так?
Вы используете minifyEnabled true для сборки? –
Нет Я использую minifyEnabled false. – Phidelux
Вы сделали пошаговую отладку и перерыв там, где она должна читать строку? И, не видя больше кода, будет сложно определить проблему. –