美好的一天
我正在尝试创建一个显示 toast 消息 onResume 的程序,但是该应用程序在启动前崩溃了,我不知道如何修复它。提供的链接好像我的问题是重复的,甚至不能帮助我解决这个问题。但是我已经根据那个问题更改了我的代码并且发生了同样的错误
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn ;
btn=(Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, ActivityTwo.class);
startActivity(i);
}
});
}
public void onResume(){
super.onResume();
String vlue=new String();
Intent i = getIntent();
Bundle b = i.getExtras();
if(b.getString("val")!=null){
vlue = b.getString("val");
}
String comp="false";
if(vlue==comp){
Toast.makeText(this,"The subactivity finished",Toast.LENGTH_LONG).show();
}
}
Logcat 堆栈
12-09 02:27:16.460 4808-4808/com.example.myapplication W/System:ClassLoader 引用未知路径:/data/app/com.example.myapplication-2/lib/x86 12-09 02:27:17.146 4808-4808/com.example.myapplication W/System:ClassLoader 引用了未知路径:/data/app/com.example.myapplication-2/lib/x86 12-09 02:27:17.353 4808-4808/com.example。 myapplication W/art:验证 java.lang.Object com.example.myapplication.MainActivity.access$super(com.example.myapplication.MainActivity, java.lang.String, java.lang.Object[]) 耗时 150.015ms 12 -09 02:27:17.403 4808-4808/com.example.myapplication W/art:在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android. content.res.ColorStateList,android.graphics。PorterDuff$Mode) 会错误地覆盖 android.graphics.drawable.Drawable 12-09 02:27:17.488 4808-4808/com.example.myapplication D/AndroidRuntime 中的 package-private 方法:关闭 VM 12-09 02:27:17.488 4808-4808/com.example.myapplication E/AndroidRuntime:致命异常:主进程:com.example.myapplication,PID:4808 java.lang.RuntimeException:无法恢复活动 {com.example .myapplication/com.example.myapplication.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.os.Bundle.getString(java.lang.String)” android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) 在 android.app.ActivityThread。handleResumeActivity(ActivityThread.java:3134) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 在 android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread. java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread。main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.NullPointerException:尝试在 null 上调用虚拟方法 'java.lang.String android.os.Bundle.getString(java.lang.String)' com.example.myapplication.MainActivity.onResume(MainActivity.java:32) 在 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092) 在 android.app.Activity.performResume(Activity.java:6312) 在 android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258)。 app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 在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) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:5417)。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 处运行(ZygoteInit.java:726)
这是第二课
public class ActivityTwo extends Activity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_two);
Button btn ,finish;
btn=(Button)findViewById(R.id.button3);
finish=(Button)findViewById(R.id.button4);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(ActivityTwo.this, MainActivity.class);
startActivity(i);
}
});
finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
String name="false";
Intent i = new Intent(ActivityTwo.this, MainActivity.class);
i.putExtra("vla", name);
startActivity(i);
return false;
}
return super.onKeyDown(keyCode, event);}}