Java 意图导致致命错误

Java 意图导致致命错误,java,android,nullpointerexception,Java,Android,Nullpointerexception,我在这里和其他地方研究过这个错误,但原因似乎多种多样。 我是新手,准备了一个原始的天气应用程序来练习。输入一个城市和州,它就会转到Weatherunderground,提取一个XML提要,解析它并显示一些数据点。这是线程和工作良好。今天,我添加了打开第二个新屏幕并在那里显示数据的意图。崩溃不知道为什么。这是错误日志。我用谷歌搜索了日志中的一些术语,但也没有成功 08-14 14:03:27.314: E/AndroidRuntime(950): FATAL EXCEPTION: main

我在这里和其他地方研究过这个错误,但原因似乎多种多样。 我是新手,准备了一个原始的天气应用程序来练习。输入一个城市和州,它就会转到Weatherunderground,提取一个XML提要,解析它并显示一些数据点。这是线程和工作良好。今天,我添加了打开第二个新屏幕并在那里显示数据的意图。崩溃不知道为什么。这是错误日志。我用谷歌搜索了日志中的一些术语,但也没有成功

    08-14 14:03:27.314: E/AndroidRuntime(950): FATAL EXCEPTION: main
    08-14 14:03:27.314: E/AndroidRuntime(950): java.lang.RuntimeException: Unable to   instantiate activity ComponentInfo{com.glenngilchrist.weatherapp/com.glenngilchrist.weatherapp.WeatherMainActivity}: java.lang.NullPointerException
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.os.Handler.dispatchMessage(Handler.java:99)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.os.Looper.loop(Looper.java:137)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread.main(ActivityThread.java:5103)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at java.lang.reflect.Method.invokeNative(Native Method)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at java.lang.reflect.Method.invoke(Method.java:525)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at dalvik.system.NativeStart.main(Native Method)
    08-14 14:03:27.314: E/AndroidRuntime(950): Caused by: java.lang.NullPointerException
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.ComponentName.<init>(ComponentName.java:75)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.Intent.<init>(Intent.java:3662)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at com.glenngilchrist.weatherapp.WeatherMainActivity.<init>(WeatherMainActivity.java:31)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at java.lang.Class.newInstanceImpl(Native Method)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at java.lang.Class.newInstance(Class.java:1130)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
    08-14 14:03:27.314: E/AndroidRuntime(950):  ... 11 more

您需要确保在AndroidManifest.xml文件中定义了新活动。至少,它应该是这样的:

<activity android:name=".TheNewActivityNameHere"/>


请发布主要天气活动的代码以了解更多详细信息。

WeatherMainActivity.java:31

您正在为Android找不到的活动创建意图

这是我看到您的错误日志时的第一印象

您可能想在ContextWrapper.getPackageName(ContextWrapper.java:135)

这是最有可能的配置错误,如先生所说。我同意你的看法,最好有一个比NPE更清晰的错误信息:-)

原因:java.lang.NullPointerException
08-14 14:03:27.314:E/AndroidRuntime(950):位于android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
08-14 14:03:27.314:E/AndroidRuntime(950):在android.content.ComponentName.(ComponentName.java:75)上
08-14 14:03:27.314:E/AndroidRuntime(950):在android.content.Intent.(Intent.java:3662)
08-14 14:03:27.314:E/AndroidRuntime(950):位于com.glenngilchrist.weatherapp.WeatherMainActivity.(WeatherMainActivity.java:31)

这里的代码是什么:
WeatherMainActivity.java:31
?WeatherMainActivity.java:31有问题,但是如果没有代码,我们就无能为力。在
WeatherMainActivity.java
中有一个
空指针异常。在类中保留一个断点并调试它。您将找到此问题的原因。请确保已将活动包括在清单文件中。上述第31行的代码是startActivity(i),如上述事件中所示。这是一个nullpointerexception,所以我假设Intent有问题???您将Intent“I”实例化为成员变量?我建议不要做startActivity(I);而是在运行时在handleMessage代码中实例化对象。(意图i=新意图(…);然后是putExtra(),然后是startactivity()…)好的,先生-就是这样。移动实例化需要将上下文从这个更改为getApplicationContext(),然后它第一次运行。很好!很高兴我能帮忙。请随意接受/投票支持我的答案:)
<activity android:name=".TheNewActivityNameHere"/>
Caused by: java.lang.NullPointerException
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.ComponentName.<init>(ComponentName.java:75)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at android.content.Intent.<init>(Intent.java:3662)
    08-14 14:03:27.314: E/AndroidRuntime(950):  at com.glenngilchrist.weatherapp.WeatherMainActivity.<init>(WeatherMainActivity.java:31)