Android 未启动活动意图
在我的应用程序中,主活动已启动,但在单击按钮时,第二个活动未通过intent启动 这是我的日志猫条目Android 未启动活动意图,android,android-intent,android-activity,Android,Android Intent,Android Activity,在我的应用程序中,主活动已启动,但在单击按钮时,第二个活动未通过intent启动 这是我的日志猫条目 08-21 23:29:35.568: D/dalvikvm(680): GC_EXTERNAL_ALLOC freed 47K, 53% free 2544K/5379K, external 716K/1038K, paused 272ms 08-21 23:29:36.319: D/TimesheetMgmt Log(680): -->Main activity launched.
08-21 23:29:35.568: D/dalvikvm(680): GC_EXTERNAL_ALLOC freed 47K, 53% free 2544K/5379K, external 716K/1038K, paused 272ms
08-21 23:29:36.319: D/TimesheetMgmt Log(680): -->Main activity launched.
08-21 23:29:53.908: D/TimesheetMgmt Log(680): -->New Task button clicked.
08-21 23:29:54.128: D/AndroidRuntime(680): Shutting down VM
08-21 23:29:54.128: W/dalvikvm(680): threadid=1: thread exiting with uncaught exception (group=0x40015560)
08-21 23:29:54.198: E/AndroidRuntime(680): FATAL EXCEPTION: main
08-21 23:29:54.198: E/AndroidRuntime(680): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.timesheetmgmt/com.timesheetmgmt.NewTaskActivity}: java.lang.NullPointerException
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.os.Handler.dispatchMessage(Handler.java:99)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.os.Looper.loop(Looper.java:123)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-21 23:29:54.198: E/AndroidRuntime(680): at java.lang.reflect.Method.invokeNative(Native Method)
08-21 23:29:54.198: E/AndroidRuntime(680): at java.lang.reflect.Method.invoke(Method.java:507)
08-21 23:29:54.198: E/AndroidRuntime(680): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-21 23:29:54.198: E/AndroidRuntime(680): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-21 23:29:54.198: E/AndroidRuntime(680): at dalvik.system.NativeStart.main(Native Method)
08-21 23:29:54.198: E/AndroidRuntime(680): Caused by: java.lang.NullPointerException
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.Activity.findViewById(Activity.java:1647)
08-21 23:29:54.198: E/AndroidRuntime(680): at com.timesheetmgmt.NewTaskActivity.<init>(NewTaskActivity.java:16)
08-21 23:29:54.198: E/AndroidRuntime(680): at java.lang.Class.newInstanceImpl(Native Method)
08-21 23:29:54.198: E/AndroidRuntime(680): at java.lang.Class.newInstance(Class.java:1409)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-21 23:29:54.198: E/AndroidRuntime(680): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
08-21 23:29:54.198: E/AndroidRuntime(680): ... 11 more
08-21 23:29:58.879: I/Process(680): Sending signal. PID: 680 SIG: 9
在log cat文件中,我可以看到主活动已启动,当我单击new task(新建任务)按钮时,上面在log cat和force close(强制关闭)按钮中提到的错误会出现在emulator上。错误在于第16行的
NewActivity
。这是你的问题。您将在该位置获得一个NullPointerException
如日志所述,您在NewTaskActivity的findViewById中遇到问题。
可能您正在寻找一个不存在的视图,并且您正在对它进行一些操作,从而导致NullPointerException
确保在NewTaskActivity中,您正在膨胀正确的布局,并检查该布局中是否存在使用id的视图。您有一个空指针@com.timesheetmgmt.NewTaskActivity。(NewTaskActivity.java:16您可以添加代码吗?另外,您是否已将新的
活动添加到清单中?您似乎希望通过findViewById使用视图,该视图不存在或尚未膨胀。是的,我已将新活动添加到清单文件中。仍然无法解决错误。
package com.timesheetmgmt;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
private static final String DEBUG_TAG= "TimesheetMgmt Log";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(DEBUG_TAG, "-->Main activity launched. ");
Button btnNewTask=(Button) findViewById(R.id.btnNewTask);
btnNewTask.setOnClickListener((OnClickListener) this);
}
public void onClick(View v) {
if(v.getId()==R.id.btnNewTask){
try {
Log.d(DEBUG_TAG, "-->New Task button clicked. ");
Intent in=new Intent(this,NewTaskActivity.class);
in.putExtra("str", "jjalj new task activity");
startActivity(in);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}