简体   繁体   English

Android领域:compactRealmFile NullPointerException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM