2014-11-05 3 views
1

이 코드가있는 NullPointerException이 있습니다. 문제는 getView()와 같지만 다른 방법은 모른다.NPE 웹 뷰로드 중

public class Seccion1 extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.seccion3, container, false); 

    return rootView; 
} 

@Override 
public void onResume() { 
    super.onResume(); 

    WebView mWebView; 

    mWebView = (WebView) getView().findViewById(R.id.lectura_webView); 

    //Archivo de ejemplo. Cambiar por el adecuado. 
    --> THIS IS THE LINE THAT GIVES THE ERROR mWebView.loadUrl("file:///android_asset/productividad/ejemplo1.html"); 

    mWebView.getSettings().setBuiltInZoomControls(true); 
    mWebView.getSettings().setDisplayZoomControls(false); 

    mWebView.setLongClickable(true); 
    mWebView.setOnLongClickListener(new View.OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      return true; 
     } 
    }); 

} 

}

The log: 

    java.lang.RuntimeException: Unable to resume activity {com.ejemplo/ejemplo.ejemplo.MainActivity}: java.lang.NullPointerException 
      at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2774) 
      at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2803) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2238) 
      at android.app.ActivityThread.access$800(ActivityThread.java:135) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5001) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at com.ejemplo.Seccion1.onResume(Seccion1.java:33) 
      at android.app.Fragment.performResume(Fragment.java:1743) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:924) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1044) 
      at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1863) 
      at android.app.Activity.performResume(Activity.java:5320) 
      at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2764) 
            at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2803) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2238) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5001) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
            at dalvik.system.NativeStart.main(Native Method) 

감사합니다!

P.D : 내 게시물은 주로 코드라고하기 때문에이 텍스트를 추가합니다. 나는 그 질문이 분명하고 직접적이라고 생각하며, 문제를 적절히 식별하는데 필요한 자료를 제공하고있다. 다시 감사합니다!

편집 한

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ejemplo/com.ejemplo1.MainActivity}: java.lang.NullPointerException 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
    at android.app.ActivityThread.access$800(ActivityThread.java:135) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5001) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
    at dalvik.system.NativeStart.main(Native Method) 


Caused by: java.lang.NullPointerException 
     at com.ejemplo1.Seccion1.onCreateView(Seccion1.java:29) 
     at android.app.Fragment.performCreateView(Fragment.java:1700) 
     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890) 
     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
     at android.app.BackStackRecord.run(BackStackRecord.java:684) 
     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
     at android.app.Activity.performStart(Activity.java:5240) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5001) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
            at dalvik.system.NativeStart.main(Native Method) 

편집 2 :

코드 상단 로그 반환 업데이트 :

public class Seccion1 extends Fragment { 

WebView mWebView; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.seccion3, container, false); 


    mWebView = (WebView) rootView.findViewById(R.id.lectura_webView); 

    //Archivo de ejemplo. Cambiar por el adecuado. 
    mWebView.loadUrl("file:///android_asset/productividad/ejemplo1.html"); 

    mWebView.getSettings().setBuiltInZoomControls(true); 
    mWebView.getSettings().setDisplayZoomControls(false); 

    mWebView.setLongClickable(true); 
    mWebView.setOnLongClickListener(new View.OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      return true; 
     } 
    }); 

    return rootView; 

} 

답변

1

클래스 변수로 WebView mWebView; 선언하고

으로 onCreateView에서 초기화를
mWebView = (WebView) rootView.findViewById(R.id.lectura_webView); 

onResume에서이 코드를 삭제 onResume

WebView mWebView; 

mWebView = (WebView) getView().findViewById(R.id.lectura_webView); 
+0

같은 줄에 NullPointerException을 계속 제공합니다. 편집 1에 새 로그를 기록했습니다. 감사합니다! –

+0

@CastorTroy 또한 oncreateview를 사용하여 질문을 편집하고 제안 된대로 onresume에서 두 줄을 제거 했습니까? –

+0

Giru, 편집 2에 추가했습니다. –

0
public class Seccion1 extends Fragment 
{ 
WebView mWebView; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
View rootView = inflater.inflate(R.layout.seccion3, container, false); 
mWebView = (WebView)rootView.findViewById(R.id.lectura_webView); 
//Archivo de ejemplo. Cambiar por el adecuado. 
    --> THIS IS THE LINE THAT GIVES THE ERROR 
mWebView.loadUrl("file:///android_asset/productividad/ejemplo1.html"); 

mWebView.getSettings().setBuiltInZoomControls(true); 
mWebView.getSettings().setDisplayZoomControls(false); 

mWebView.setLongClickable(true); 
mWebView.setOnLongClickListener(new View.OnLongClickListener() { 

    @Override 
    public boolean onLongClick(View v) { 
     return true; 
    } 
}); 
return rootView; 
} 
} 
+0

이 게임은 "3 차이점 찾기"입니까? 추가 텍스트를 작성하고 코드/원래 코드의 문제점을 설명하십시오. – Robert

+0

당신의 문제를 일으키지 않았습니까 –

+0

안녕하세요! 나는 이것을 시도하고 나에게 동일한 줄을 가진 NullPointerException을 계속 제공한다. 편집에 로그를 게시합니다. –

0

에서 선 아래 제거 :

mWebView = (WebView) getView().findViewById(R.id.lectura_webView); 

을 그리고 onCreateView이 코드를 추가

mWebView = (WebView) rootView.findViewById(R.id.lectura_webView); 

당신은 필요mWebView이 부풀린 레이아웃 (rootView)이기 때문에 이렇게하십시오.

+0

같은 줄에 NullPointerException을 계속 제공합니다. 편집 1에 새 로그를 기록했습니다. 감사합니다! –