2016-07-01 24 views
-1

異なるSOの質問に基づいて、私はjava.null.pointer例外が何であるか理解していますが、なぜこの場合に発生するのか分かりません。要約すると、まだ定義されていない参照型として宣言された変数への参照。java nullポインタ例外

私は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) at mobi.blessd.user.blessd.activity.RegisterActivity.access $ 300(RegisterActivity .java:35) at mobi.blessd.user.blessd.activity.RegisterA $ 1.Click(RegisterActivity.java:84) android.view.View.performClick(View.java:4508) (android.view.View)$ PerformClick.run(View.java:18675) にandroid.os .Handler.handleCallback(Handler.java:733)android.os.Handler.dispatchMessage(Handler.java:95)の とandroid.os.Looper.loop(Looper.java:136) とandroid.app.ActivityThread .Main(ActivityThread.java:5584) at java.lang.reflect.Method.invokeNative(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal。 os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1) dalvik.system.NativeStart.main(ネイティブメソッド)でcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) における268) マイソースコードは、次のチュートリアルhttp://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/である

+1

私たちは、あなたが求めているかについての詳細な情報を見ることができるように、また、両方のクラスを投稿NullPointerException' '詳細はこのリンクをチェックしてみて下さいます。http://stackoverflow.com/questions/218384/whatこれは、RegistrActivityファイルのgetInstance呼び出しの前に、AppControllerオブジェクトのインスタンスを最初に作成するソリューションです。 – Igoranze

+0

は、AppControllerオブジェクトのインスタンスを最初に作成するソリューションです。 –

+0

AppControllerはアプリケーションクラスですか?私。あなたは ''をマニフェストに持っていますか? –

答えて

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

それを指摘していただきありがとうございました、コードはシングルトンデザインパターンのように割り当てられています – Igoranze