领域空对象引用 [英] realm null object reference

查看:52
本文介绍了领域空对象引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在没有网络的情况下启动我的应用程序并在数据库应用程序崩溃时调用我的数据时,这就是我的代码

when i start my app with out network and call my data in my database app crash and this is my code

 public void getAllMovies() {
    findData = realm.where(MovieDb.class).findAll();
    movieArrayList = new ArrayList(findData);
    movieMethod();
}

我在这里让我大为火爆

public class myApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();
    RealmConfiguration configuration = new RealmConfiguration
            .Builder(this).name("Movie_database.realm").build();
    Realm.setDefaultConfiguration(configuration);}}

moviedb是我的领域对象
我的应用程序崩溃了

and moviedb is my realm object
my app crash in line

    findData = realm.where(MovieDb.class).findAll();

这是我的错误

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.massive.movieapp, PID: 4222
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.massive.movieapp/com.massive.movieapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'io.realm.RealmQuery io.realm.Realm.where(java.lang.Class)' on a null object reference
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                  at android.app.ActivityThread.-wrap11(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5417)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'io.realm.RealmQuery io.realm.Realm.where(java.lang.Class)' on a null object reference
                  at com.massive.movieapp.FragmentForActivity.getAllMovies(FragmentForActivity.java:143)
                  at com.massive.movieapp.FragmentForActivity.CallNetwork(FragmentForActivity.java:62)
                  at com.massive.movieapp.FragmentForActivity.onCreate(FragmentForActivity.java:55)
                  at android.app.Fragment.performCreate(Fragment.java:2198)
                  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:942)
                  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)
                  at android.app.BackStackRecord.run(BackStackRecord.java:793)
                  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535)
                  at android.app.FragmentController.execPendingActions(FragmentController.java:325)
                  at android.app.Activity.performStart(Activity.java:6252)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                  at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:148) 
                  at android.app.ActivityThread.main(ActivityThread.java:5417) 
                  at java.lang.reflect.Method.invoke(Native Method

推荐答案

发生异常是因为调用getAllMovies方法时realm变量为null.

The exception happens because your realm variable is null when you call the getAllMovies method.

记住以前要打realm = Realm.getDefaultInstance();.

这篇关于领域空对象引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆