Android 每次启动时应用程序都会崩溃

Android 每次启动时应用程序都会崩溃,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

我的应用程序在启动时崩溃。我不知道为什么。我想我做对了。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         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这是完整的代码