0

I have an activity with only browser view. Every time application tries to open url I get this exception:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference

that refers to this line:

mWebView.loadUrl("http://google.com");

After commenting this line, activity opens normal from the other view. Here is the code that tries to load web page:

 public class Browser extends AppCompatActivity {


 WebView mWebView;
/**
 * ATTENTION: This was auto-generated to implement the App Indexing API.
 * See https://g.co/AppIndexing/AndroidStudio for more information.
 */
private GoogleApiClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  setContentView(layout.activity_browser);

    mWebView = (WebView) findViewById(R.id.webView);


       mWebView.loadUrl("http://google.com");


    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}

Logcat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{karolklimek.mpkdisplay2/karolklimek.mpkdisplay2.Browser}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                                                                             at android.app.ActivityThread.access$800(ActivityThread.java:144)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                             at android.os.Looper.loop(Looper.java:135)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5221)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at java.lang.reflect.Method.invoke(Method.java:372)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
                                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference
                                                                             at karolklimek.mpkdisplay2.Browser.onCreate(Browser.java:38)
                                                                             at android.app.Activity.performCreate(Activity.java:5933)
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                                                                             at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                             at android.os.Looper.loop(Looper.java:135) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5221) 
                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

And the content of content_browser XML file:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="karolklimek.mpkdisplay2.Browser"
    >
<WebView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/webView"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true" />

</RelativeLayout>
Lal
  • 14,726
  • 4
  • 45
  • 70
  • 1
    Possible duplicate of [What is a Null Pointer Exception, and how do I fix it?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Rami Feb 11 '16 at 17:30
  • Did it occur to you that `mWebView` might be null and that you should check your id, import and layout? – David Medenjak Feb 11 '16 at 17:30

2 Answers2

0

You have a mistake in setContentView(). You have to pass the integer value of your layout from R.java file. Thus you have to pass R.layout.activity_browser instead of layout.activity_browser.

It should be

setContentView(R.layout.activity_browser);

UPDATE

In your code, you are setting the content view to be activity_browser but from your question, I understand that you have the webview in content_browser.xml file, and thus you are getting an NPE.

Simplest way to solve the error would be to move the webview to your activity_browser.xml or change your setContentView to load content_browser instead of activity_browser.

Lal
  • 14,726
  • 4
  • 45
  • 70
0

From the code we can see that the layout is not loaded, due to that the mWebView object not initialized and you are end up with the NPE.

The code should be setContentView(R.layout.activity_browser); instead setContentView(layout.activity_browser);