Android 每次启动时应用程序都会崩溃
我的应用程序在启动时崩溃。我不知道为什么。我想我做对了。eclipse不会显示错误 MainActivity.java(已编辑) LogCatAndroid 每次启动时应用程序都会崩溃,android,webview,Android,Webview,我的应用程序在启动时崩溃。我不知道为什么。我想我做对了。eclipse不会显示错误 MainActivity.java(已编辑) LogCat 06-24 14:41:52.079: E/AndroidRuntime(5986): FATAL EXCEPTION: main 06-24 14:41:52.079: E/AndroidRuntime(5986): java.lang.RuntimeException: Unable to instantiate activity
06-24 14:41:52.079: E/AndroidRuntime(5986): FATAL EXCEPTION: main
06-24 14:41:52.079: E/AndroidRuntime(5986): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.flikkema.robin.dagrooster/org.flikkema.robin.dagrooster.MainActivity}: java.lang.NullPointerException
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.app.ActivityThread.access$600(ActivityThread.java:130)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.os.Handler.dispatchMessage(Handler.java:99)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.os.Looper.loop(Looper.java:137)
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-24 14:41:52.079: E/AndroidRuntime(5986): at java.lang.reflect.Method.invokeNative(Native Method)
06-24 14:41:52.079: E/AndroidRuntime(5986): at java.lang.reflect.Method.invoke(Method.java:511)
06-24 14:41:52.079: E/AndroidRuntime(5986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-24 14:41:52.079: E/AndroidRuntime(5986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-24 14:41:52.079: E/AndroidRuntime(5986): at dalvik.system.NativeStart.main(Native Method)
06-24 14:41:52.079: E/AndroidRuntime(5986): Caused by: java.lang.NullPointerException
06-24 14:41:52.079: E/AndroidRuntime(5986): at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
编辑:在我添加之后:WebView mWebview=(WebView)findViewById(R.id.webView1);
*它给了我同样的错误*
编辑:在我编辑完之后。它仍然崩溃。我已经发布了完整的代码。很简单,您还没有初始化mWebview 用这种方式
WebView mWebview =(WebView) findviewById(R.id.webview_id);
编辑
我想你必须这样做
// Declare as global variable
WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayoutfile);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
mWebview =(WebView) findviewById(R.id.webview_id);
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
}
很简单,您没有初始化mWebview 用这种方式
WebView mWebview =(WebView) findviewById(R.id.webview_id);
编辑
我想你必须这样做
// Declare as global variable
WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayoutfile);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
mWebview =(WebView) findviewById(R.id.webview_id);
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
}
mWebview
是可能的null
。
您必须将其绑定:
mWebView = (WebView) findViewById(R.id.YourWebView);
或发起:
mWebView = new WebView(this);
我想你的后缀m代表“会员”。因此,在onCreate外部声明它,并在onCreate方法内部绑定或初始化它
更新:
private WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayoutfile);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
mWebview =(WebView) findviewById(R.id.webview_id);
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
}
mWebview
是可能的null
。
您必须将其绑定:
mWebView = (WebView) findViewById(R.id.YourWebView);
或发起:
mWebView = new WebView(this);
我想你的后缀m代表“会员”。因此,在onCreate外部声明它,并在onCreate方法内部绑定或初始化它
更新:
private WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayoutfile);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
mWebview =(WebView) findviewById(R.id.webview_id);
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
}
您尚未初始化
WebView
WebView mWebview ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
setContentView(mWebview );
}
您尚未初始化
WebView
WebView mWebview ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
Toast.makeText(this, "Laden van roosterwijzigingen.",
Toast.LENGTH_SHORT).show();
// Enable JavaScript
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
setContentView(mWebview );
}
这表明您试图过早地访问资源,例如在初始化成员变量时。仅在活动生命周期的onCreate()
或更高版本中调用getResources()
修复后,您会发现mWebView
是别人建议的null
。在调用findViewById()
查找内容视图层次结构中的组件之前,首先需要setContentView()
这表明您试图过早地访问资源,例如在初始化成员变量时。仅在活动生命周期的onCreate()
或更高版本中调用getResources()
修复后,您会发现
mWebView
是别人建议的null
。在调用findViewById()
查找内容视图层次结构中的组件之前,您需要先setContentView()
。Java它不是c/c++。必须先创建对象,然后才能访问其字段。您需要调用mWebView=newWebView(this)@你的意思是:WebView mWebView=新的WebView(这个);我该把这个放在哪里?在onCreate内部?是的,您可以在onCreate内部放置。或者您可以创建一个包含WebView的xml文件,并使用FindViewBydjava,因为它不是c/c++。必须先创建对象,然后才能访问其字段。您需要调用mWebView=newWebView(this)@你的意思是:WebView mWebView=新的WebView(这个);我该把这个放在哪里?在onCreate内部?是的,您可以在onCreate内部放置。或者,您可以创建一个包含WebView的xml文件,并在我使用该文件时使用findViewById:mWebView=(WebView)findViewById(R.id.webView1);它说当我使用这个时,mWebView不能解析为变量:mWebView=(WebView)findViewById(R.id.webView1);它说mWebView无法解析为变量它说当我使用WebView mWebView=(WebView)findViewById(R.id.webView1)时,mWebView无法解析;你已经创建了布局文件&在这个文件中放置了有效的WebView:),但是我是否需要使用:WebView mWebview=(WebView)findviewById(R.id.WebView\u id);无论如何都不行。将mWebView声明为成员属性,您可以在该活动的每个方法中使用它。是的,您可以使用WebView mWebView=(WebView)findviewById(R.id.WebView\u id);在declare as globalit之后的每个方法中,当我使用WebView mWebview=(WebView)findViewById(R.id.webView1)时,mWebview都表示无法解析;你已经创建了布局文件&在这个文件中放置了有效的WebView:),但是我是否需要使用:WebView mWebview=(WebView)findviewById(R.id.WebView\u id);无论如何都不行。将mWebView声明为成员属性,您可以在该活动的每个方法中使用它。是的,您可以使用WebView mWebView=(WebView)findviewById(R.id.WebView\u id);在声明为globalDo后的每个方法中,我都需要初始化每个方法中的WebView?@Flikkema.org我不理解每个方法?。您可以将WebView mWebview
声明为类成员,并在创建时初始化它mWebview@Flikkema.org如果在同一个类中有更多的方法,则可以在oncreate中初始化webview并将其声明为类成员,并在类的每个方法中使用它。@Flikkema.org请参见编辑。在同一类中,如果您有更多的方法,您可以使用mWebview
。是否需要在每个方法中初始化WebView?@Flikkema.org我不了解每个方法?。您可以将WebView mWebview
声明为类成员,并在创建时初始化它mWebview@Flikkema.org如果在同一个类中有更多的方法,则可以在oncreate中初始化webview并将其声明为类成员,并在类的每个方法中使用它。@Flikkema.org请参见编辑。在同一个类中,如果您有更多的方法,您可以使用mWebview
。在Dixit Patel.@Flikkema.org的示例中,iset setContentView()如何看到更新的问题在onCreate()
之前没有显示资源访问。这是你的全部密码吗?此外,您的logcat在getResources()中的NullPointerException下应该包含更多stacktrace,以帮助您精确定位问题的确切位置。@laalto这是完整的代码,但不是完整的logcat。如何修复代码?或者您需要更多的日志吗?iset setContentView()如何在Dixit Patel.@Flikkema.org的示例中看到,更新的问题在onCreate()之前没有显示资源访问。这是你的全部密码吗?此外,您的日志猫应该在getResources()中的NullPointerException下包含更多stacktrace,以帮助您精确定位问题的确切位置。@laalto这是完整的代码