2017-08-23 71 views
0

我学习android工作室编程和我在我的程序中有问题, 当我想要去使用意向声明我的应用程序崩溃的新活动, 这是我的主要活动;我的应用程序崩溃时执行意图语句

public class MainActivity extends AppCompatActivity { 

private FirebaseAuth mAuth; 
private FirebaseAuth.AuthStateListener mAuthListener; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mAuth = FirebaseAuth.getInstance(); 
} 

public void onStart(){ 
    super.onStart(); 
    FirebaseUser CurrentUser = mAuth.getCurrentUser(); 
    if(CurrentUser == null){ 
     Intent StartIntent = new Intent(MainActivity.this, 
            StartActivity.class); 
     startActivity(StartIntent); 
     finish(); 
    } 
    } 

} 

,这是明显的:

android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".StartActivity" 
     android:label="@string/app_name"> 

    </activity> 

没有错误消息 但thit是我所到的Android显示器:

08-23 21:50:33.507 11264-11264/? E/AndroidRuntime: FATAL EXCEPTION: main 
               Process: com.ruse.ayse.areyousmartenough, PID: 11264 
               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ruse.ayse.areyousmartenough/com.ruse.ayse.areyousmartenough.StartActivity}: java.lang.NullPointerException 
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327) 
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378) 
                at android.app.ActivityThread.access$800(ActivityThread.java:155) 
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 
                at android.os.Handler.dispatchMessage(Handler.java:102) 
                at android.os.Looper.loop(Looper.java:136) 
                at android.app.ActivityThread.main(ActivityThread.java:5433) 
                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:1268) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
                at dalvik.system.NativeStart.main(Native Method) 
               Caused by: java.lang.NullPointerException 
                at com.ruse.ayse.areyousmartenough.StartActivity.onCreate(StartActivity.java:31) 
                at android.app.Activity.performCreate(Activity.java:5301) 
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2291) 
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)  
                at android.app.ActivityThread.access$800(ActivityThread.java:155)  
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)  
                at android.os.Handler.dispatchMessage(Handler.java:102)  
                at android.os.Looper.loop(Looper.java:136)  
                at android.app.ActivityThread.main(ActivityThread.java:5433)  
                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:1268)  
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)  
                at dalvik.system.NativeStart.main(Native Method)  

我解决了这个问题到另一个项目通过将“意图过滤器”添加到清单文件中但它不适用于此项目,

这是StartActivity:

public class StartActivity extends AppCompatActivity { 

private Button mRegBtn ; 
private Button mLoginBtn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_start); 

    mRegBtn = (Button) findViewById(R.id.RegBtn); 
    mLoginBtn = (Button) findViewById(R.id.LoginBtn); 

    mRegBtn.setOnClickListener(new View.OnClickListener(){ 

     @Override 
     public void onClick(View view) { 
      Intent createAccount = new Intent(StartActivity.this, RegisterActivity.class); 
      startActivity(createAccount); 
     } 
    }); 
    mLoginBtn.setOnClickListener(new View.OnClickListener(){ /////this is line 31 
     @Override 
     public void onClick(View view) { 
      Intent loginAccount = new Intent(StartActivity.this, LoginActivity.class); 
      startActivity(loginAccount); 
     } 
    }); 
}} 
+0

的就是你得到的异常? – SoroushA

+0

旁注:在java中,变量名应该以小写字母开头。 – litelite

+0

也添加StartActivity – young

回答

2

你的问题是在StartActivity.java:31你试图从空引用读取。

通过您的意见,您看错过任何布局得到mLoginBtn =

mLoginBtn = (Button) findViewById(R.id.btn_login); 
+0

这就是我进入StartActivity.java:31-37:'mLoginBtn.setOnClickListener(new View.OnClickListener(){ @Override public空隙的onClick(查看视图){ 意图登录账号=新意图(StartActivity.this,LoginActivity.class); startActivity(登录账号); } });' – yazeed

+2

@yazeed不的注释后培训相关的代码回答。相反,编辑您的原始问题添加它 – litelite

+0

检查更新的答案 –