2016-07-01 3 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가 파일의 방법 :

공용 static 동기화의 AppController의 getInstance() { 창 mInstance; 33 : }

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 995-995 17.757/mobi.blessd.user.blessd E/AndroidRuntime : FATAL EXCEPTION : 메인 공정 : mobi.blessd.user.blessd , PID : 995 java.lang.NullPointerException at 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 ctivity $ 1.onClick (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 -is-a-nullpointerex-a-do-i-fix- – 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

지적 해 주셔서 고맙습니다. 코드 모양이 싱글 톤 디자인 패턴처럼 할당됩니다. – Igoranze