Я пытаюсь использовать строковые ресурсы Android для проекта LibGDX.
К сожалению, я могу получить доступ только к методу getString()
и классу R
из пакета Android.
Что я могу сделать, чтобы получить к ним доступ также из основного пакета?
Или даже лучше использовать другое решение для файлов перевода?
Вы можете пойти тремя разными путями:
Объедините код модуля core
с модулем android
и просто не используйте core
. Недостатком этого является то, что вы потеряете возможность легко тестировать на своем рабочем столе (быстрее скомпилировать сборку рабочего стола для быстрого тестирования изменений кода), и вы потеряете возможность переноса на другие платформы, такие как рабочий стол и iOS.
Используйте классы локализации libGDX для управления строками на разных языках вместо ресурсов Android. Есть инструкция как им пользоваться здесь. Это самое простое решение, и оно сохраняет кроссплатформенность.
Возможно, вы могли бы написать какую-то задачу Gradle, которая извлекает ваши идентификаторы строк из сгенерированного класса R каждый раз, когда вы создаете свой модуль Android, и делает их копии доступными в классе Java в вашем основном модуле, и использует их для извлечения строк из XML через какой-то интерфейс. Это сверхсложное решение.
Спасибо, пошел на решение 2, и оно отлично работает для моего случая.