Как получить 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
    }
}

Проверьте закомментированные строки

Это может решить вашу проблему

Другие вопросы по тегам