Как получить AssetManager из библиотечного проекта
Я пытаюсь получить AssetManager
создать класс в проекте библиотеки Android, но я получаю сообщение об ошибке:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
Вот как я это называю:
public class RevPluginLoader extends AppCompatActivity {
private List<String> copyPlugins() {
AssetManager assetManager = getAssets(); // This is where it all fails
}
}
Как я могу получить AssetManager
?
2 ответа
Решение
Мы не можем добавить папку ресурсов в модуле lib
Модули библиотеки не могут включать необработанные ресурсы. Инструменты не поддерживают использование файлов необработанных активов (сохраненных в каталоге assets/) в модуле библиотеки. Любые ресурсы ресурсов, используемые приложением, должны храниться в каталоге assets/ самого модуля приложения.
Для более подробной информации, вы можете обратиться сюда
Я думаю, что у вас есть onCreateView
public class RevPluginLoader extends AppCompatActivity {
private Context mContext = null; //declare a context here
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this; //assign class object to context
}
private List<String> copyPlugins() {
AssetManager assetManager = mContext.getAssets(); //use context here
}
}
Проверьте закомментированные строки
Это может решить вашу проблему