3

I am trying to get AssetManager form a class in an Android library project, but I am getting the error:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

This is how I call it:

public class RevPluginLoader extends AppCompatActivity {

    private List<String> copyPlugins() {
        AssetManager assetManager = getAssets();  // This is where it all fails
    }
}

How can I get the AssetManager?

4

2 回答 2

2

我们无法在 lib 模块中添加 assets 文件夹

库模块不能包含原始资产 这些工具不支持在库模块中使用原始资产文件(保存在 assets/ 目录中)。应用程序使用的任何资产资源都必须存储在应用程序模块本身的 assets/ 目录中。

有关更多详细信息,您可以参考这里

于 2017-08-11T05:45:51.743 回答
1

我想你有一个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
    }
}

检查注释行

这可能会解决您的问题

于 2017-08-11T05:30:34.490 回答