2016-07-01 154 views
-1

基于不同的SO问题,我明白java.null.pointer异常是什么,我只是不确定它为什么会出现在这种情况下。总之,对一个声明为引用类型的变量的引用尚未定义。java空指针异常

我有2个java文件RegisterActivity.java和AppController.java。

在一个java.null.pointer异常RegisterActivity.java文件的结果下面的调用:

AppController.getInstance()addToRequestQueue(strReq,tag_string_req);

这是AppController中文件的方法:

公共静态同步的AppController的getInstance(){ 返回mInstance; }

public class AppController extends Application { 

    public static final String TAG = AppController.class.getSimpleName(); 

    private RequestQueue mRequestQueue; 

    private static AppController mInstance; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 
    } 

    public static synchronized AppController getInstance() { 
     return mInstance; 
    } 


//RegisterActivity.java 
public class RegisterActivity extends Activity { 
... 
    private void registerUser(final String name, final String email, 
          final String password) { 
      ... 
      AppController.getInstance().addToRequestQueue(strReq, tag_string_req); 
    } 

... 
} 

07-01 16:33:17.757 995-995/mobi.blessd.user.blessd E/AndroidRuntime:致命异常:主 过程:mobi.blessd.user.blessd ,PID:995 显示java.lang.NullPointerException 在mobi.blessd.user.blessd.activity.RegisterActivity.registerUser(RegisterActivity.java:189) 在mobi.blessd.user.blessd.activity.RegisterActivity.access $ 300(RegisterActivity .java:35) at mobi.blessd.user.blessd.activity.RegisterA在android.view.View.performanceClick(View.java:18675) at android.os .Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread .main(ActivityThread.java:5584) 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:1 268) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 在dalvik.system.NativeStart.main(本机方法)

我的源代码是从下面的教程http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

+1

请后两类这样我们就可以看到你所要求的详细资料,还检查了此链接的'NullPointerException'更多的信息:HTTP://stackoverflow.com/questions/218384/what -is-a-nullpointerexception-and-how-do-i-fix-it – Igoranze

+0

是在RegistrActivity文件中调用getInstance之前首先创建AppController对象实例的解决方案。 –

+0

AppController是你的Application类吗?即你有清单中的“吗? –

回答

2

您是否已将AppControler添加到清单中?

<application 
     android:name=".AppController" //this one 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
+1

但AppController是应用程序。它应该在Android进行任何活动之前创建。我看到的唯一变体:它不是真正的应用程序类,它没有在清单中声明。 –

+0

是的,我同意。它应该在任何活动之前创建 –

+0

感谢您指出这一点,代码看起来像一个Singleton设计模式分配 – Igoranze