我想找出问题所在。 我知道问题是NullPointerException。但我不知道 这是为什么。
我只有一个启动活动的按钮。
这是导致问题的代码部分。如果我删除startactivity它工作正常。 只有在Intent.Method1成功结束后才会发生异常。
methodtest(parm1);
try{
startActivity( IntentFactory.Method1(parm1, parm2) );
} catch(ActivityNotFoundException e){
showToast(getText(R.string.error1));
}
这是我的异常logcat。
07-06 08:09:03.176:E / AndroidRuntime(2385):java.lang.RuntimeException:无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.TabbedNavigationActivity}:java。 lang.RuntimeException:无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.ExtrasActivity}:java.lang.NullPointerException
07-06 08:09:03.176:E / AndroidRuntime(2385):引起:java.lang.RuntimeException:无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.ExtrasActivity}:java。 lang.NullPointerException
07-06 08:09:03.176:E / AndroidRuntime(2385):at net.apptest.app1.abstivities.AbstractHttpActivity.registerOnClickListener(AbstractHttpActivity.java:262)
07-06 08:09:03.176:E / AndroidRuntime(2385):at net.apptest.app1.activities.MainActivity.onCreate(MainActivity.java:309)
07-06 08:09:03.176:E / AndroidRuntime(2385):at net.apptest.app1.activities.ExtrasActivity.onCreate(ExtrasActivity.java:18)
07-06 08:17:38.779:E / AndroidRuntime(2699):java.lang.RuntimeException:无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.TabbedNavigationActivity}:java.lang.RuntimeException :无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.ExtrasActivity}:java.lang.NullPointerException
07-06 08:17:38.779:E / AndroidRuntime(2699):引起:java.lang.RuntimeException:无法启动活动ComponentInfo {net.apptest.app1 / net.apptest.app1.activities.ExtrasActivity}:java。 lang.NullPointerException
07-06 08:17:38.779:E / AndroidRuntime(2699):at net.apptest.app1.abstivities.AbstractHttpActivity.registerOnClickListener(AbstractHttpActivity.java:262)
07-06 08:17:38.779:E / AndroidRuntime(2699):at net.apptest.app1.activities.MainActivity.onCreate(MainActivity.java:309)
07-06 08:17:38.779:E / AndroidRuntime(2699):at net.apptest.app1.activities.ExtrasActivity.onCreate(ExtrasActivity.java:18)
AbstractHTTPActivity中的第262行:
* @param v
* The view an OnClickListener should be registered for
* @param id
* The id used to identify the item clicked (<code>ITEM_*</code>
* statics)
*/
protected void registerOnClickListener(View v, final int id) {
v.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onItemClicked(id);
}
});
}
MainActivity中的第309行:
mDB2S =(按钮)findViewById(R.id.ButtonDB2S);
registerOnClickListener(mDB2S,ITEM_DB2S);
ExtrasActivity中的第18行:
super.onCreate(savedInstanceState);
我的layout.xml
<Button
android:id="@+id/ButtonDB2S"
android:layout_width="fill_parent"
android:layout_height="65dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableLeft="@drawable/ic_menu_help"
android:text="@string/db2" />
这是我的IntentFactory.Method1。它只启动一个视频,它通常没有问题。我在第二个地方使用这种方法,它无一例外地工作。 而Methodtest是另一种运行良好的方法,只有startActivity行导致了这个问题。
public static Intent Method1 (String parm1, String parm2) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(parm1), "video/*");
return intent;
}
编辑: 我已经更多地进行了debbuged,并找到了NullPointerException发生的位置。在MainActivity上,我在启动时将按钮加载到mDB2,它工作正常。在我退出由IntentFactory.Method1启动的视频播放器后,重新加载视图,这意味着再次启动MainActivity。但是现在mDB2找不到按钮并且是NULL。但是在第一次运行时它没有任何问题
答案 0 :(得分:0)
我已经解决了我的问题。解决方案非常简单,以前我没有检查过。 我错过了将按钮添加到横向布局:(
应用程序在电影放映器退出后更改方向,因为横向布局中缺少按钮,我有NullPointerException。
很抱歉之前没有检查过。