[英]Android Realm: compactRealmFile NullPointerException
I am using Realm version 0.80.1
and my code is below : 我正在使用Realm version 0.80.1
,我的代码如下:
Realm realm_ = null;
try {
realm_ = Realm.getInstance(new File(func.getFolder("db")), getResources().getString(R.string.app_name_db) + ".realm");
realm_.beginTransaction();
RealmResults<AllAuthors> allauthors = realm_.where(AllAuthors.class).findAll();
allauthors.clear();
realm_.commitTransaction();
} finally {
if(realm_ != null) {
realm_.compactRealmFile(getActivity(), func.getFolder("db") + getResources().getString(R.string.app_name_db) + ".realm");
realm_.close();
}
}
But the program gives an error NullPointerException
in a row 但是程序连续给出错误NullPointerException
realm_.compactRealmFile(getActivity(), func.getFolder("db") + getResources().getString(R.string.app_name_db) + ".realm");
func.getFolder("db")
gives me the full path of the directory on the SD card. func.getFolder("db")
为我提供了SD卡上目录的完整路径。
What am I doing wrong? 我究竟做错了什么?
Stack: 堆:
java.lang.RuntimeException: Unable to destroy activity {com.gorayalexander.samlibreaderlike/com.gorayalexander.samlibreaderlike.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3689)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3707)
at android.app.ActivityThread.access$1400(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at io.realm.Realm.compactRealmFile(Realm.java:1731)
at io.realm.Realm.compactRealmFile(Realm.java:1781)
at com.gorayalexander.samlibreaderlike.MainActivity.onDestroy(MainActivity.java:145)
at android.app.Activity.performDestroy(Activity.java:5436)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1119)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3676)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3707)
at android.app.ActivityThread.access$1400(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
您正在onDestroy()
中调用该函数,确定您的getActivity()
不返回null吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.