我需要一个类来获取设备上的艺术家,专辑和曲目,然后我将使用JNI进行调用。getContentResolver in Separate Class
目前,在它的准系统中,以下原因导致崩溃。
public class AndroidMediaLibray extends Activity {
public void getArtists() {
getContentResolver();
}
}
我该如何解决这个问题?
我需要一个类来获取设备上的艺术家,专辑和曲目,然后我将使用JNI进行调用。getContentResolver in Separate Class
目前,在它的准系统中,以下原因导致崩溃。
public class AndroidMediaLibray extends Activity {
public void getArtists() {
getContentResolver();
}
}
我该如何解决这个问题?
您遇到的问题是您需要致电getContentResolver()
,电话号码是Context
。如果您在Activity
中调用它,则会自动在Activity
的Context
上调用它。但你(可能)从来没有真正开始AndroidMediaLibrary
。请参阅documentation of activities。如果你想在额外的类中调用数据库,你可以看看下面的代码。我创建了一个类static方法。我只需要将我给出的Activity
的上下文传递给该类。你的情况是类可能是这样的:
public class AndroidMediaLibrary {
public static List<String> getArtists(Context context){
ArrayList<String> retVal = new ArrayList<String>();
ContentResolver resolver = context.getContentResolver();
// some more stuff here..
return retVal;
}
}
你可以调用该函数从您的MainActivity有:
List<String> myValues = DBUtils.someFunction(MainActivity.this);
你应该张贴的logcat的。或者至少告诉我们你得到了什么异常。 – MalaKa
08-17 14:44:58.754 11871-11871 /? E/AndroidRuntime:FATAL EXCEPTION:main java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.myapplication/com.example.myapplication.MainActivity}:java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2308) 不知道这是否有帮助。根本不用于Java。 – Jacob
这看起来像你正试图从'MainActivity'的'onCreate'调用'getArtist()'。我对吗? – MalaKa