Плагин Android - не может ссылаться на ресурсы AAR - PullRequest
0 голосов
/ 06 февраля 2019

РЕДАКТИРОВАТЬ:

После дальнейшего изучения вопрос на самом деле: Как включить файл AAR в плагин для приложения?

Я пишу плагин,тогда плагин загружается другим приложением.В этом случае я не могу найти ресурсы.Но я могу получить доступ ко всем классам.Если я превращу свой плагин в отдельное приложение.Я могу получить доступ даже к ресурсам.

Как заставить работать aar, если он включен в плагин и загружен в другое приложение?


Так что я знаю, что существует миллион подобных вопросов, однакокажется, ничего не работает, поэтому, может быть, я что-то упускаю.

  1. Я создал простую библиотеку Android - Файл -> Новый -> Новый модуль -> Библиотека Android
  2. Iдобавил библиотеку в мой проект

    flatDir{ dirs "./aar" } // project gradle
    implementation (name: "the_library_name", ext: "aar") // module gradle
    
  3. Я могу получить доступ к любому классу Kotlin из библиотеки

  4. Я не могу получить доступ ни к одному ресурсу ни из aarсам или проект, ссылающийся на aar

В моем проекте: Resouces $ NotFoundException: строковый идентификатор ресурса ...

context.getString(R.string.some_string)
// R -> com.my_project.test.R

В моемкод библиотеки: Resouces $ NotFoundException: недопустимый тип идентификатора ресурса # 0x5

inflater.inflate(R.layout.some_layout,....)
// R -> com.my_library.name.R

В обоих случаях код не выполняется при попытке обратиться к ресурсу AAR.Но это работает:

com.my_library.name.LibraryClass()

Не сгенерировал ли AAR неправильно?Есть ли особый шаг, чтобы разрешить доступ к ресурсам?Я неправильно включил это в мое приложение?

ПРИМЕЧАНИЕ. Библиотека написана на kotlin, приложение представляет собой комбинацию kotlin и Java.Я получаю доступ к ресурсам из классов Kotlin.Не уверен, имеет ли это значение или нет.

ПРИМЕЧАНИЕ 2. Сначала я запустил свою библиотеку в проекте приложения, то есть увидел код библиотеки в модуле и изменил код.Это тоже не сработало.Та же проблема с ресурсами.

ПРИМЕЧАНИЕ3: Приложение не выполняет никаких действий по умолчанию.Это плагин для другого приложения.Я думаю, что это как-то связано с тем, что это не работает.Я попробовал несколько "примеров" проектов, и там все работает нормально.

1 Ответ

0 голосов
/ 08 февраля 2019

Отвечая на этот вопрос, так как кажется, что он не связан с AAR.Похоже, ошибка сторонних приложений, потому что этот подход работает где-то еще.

...