마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹뷰실행시 모바일앱종료문제..

0 추천

안녕하세요^^ 하이브리드앱을 시작하고있는 초보입니다.

앱을실행하면 모바일브라우저로 자꾸 앱이실행이돼서

 웹뷰로 실행되게하고자

WebView mywebview = (WebView) findViewById(R.id.webview); 한줄을 추가했는데 바로 앱실행종료에러가 나타나서 몇시간째 노력했지만 고쳐지지가않습니다.ㅜㅜ  폰갭구버전,코르도바최신버전,이클립스 사용하고있습니당

 

private WebView mWebView;

private WebSettings mWebSettings;



@Override

public void onCreate(Bundle savedInstanceState)

{

    super.onCreate(savedInstanceState);

    super.init();

 

    //MyWebViewClient source

 	SystemWebViewEngine systemWebViewEngine = (SystemWebViewEngine) appView.getEngine();

    WebViewClient myWebViewClient = new MyWebViewClient(systemWebViewEngine);

    mWebView = (WebView) systemWebViewEngine.getView();

    mWebView.setWebViewClient(myWebViewClient);



    //전화번호 추출

    TelephonyManager telephony = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

    mytel = telephony.getLine1Number();

    

    //설정

    mWebSettings = mWebView.getSettings();

    //mWebView.setWebViewClient(new WebViewClient());

    mWebView.getSettings().setJavaScriptEnabled(true);

    WebView mywebview = (WebView) findViewById(R.id.webview);

    mywebview.loadUrl("http://vbtpark.com/mobile/?mytel="+mytel);

	}//onCreate

}//Main
파거대매반 (120 포인트) 님이 2016년 9월 29일 질문
파거대매반님이 2016년 9월 29일 수정
폰갭, 코도바를 사용하신다면 좀 더 생산적인 방법을 생각해 보세요. 폰갭 플러그인을 사용하시면 자동으로 기본 템플릿을 작성해 주고요. 개인적인 추천 사항로는 ionic을 이용해서 작업하시는게 하이브리드에서 가장 효율적이고 안정적인 방법 중의 하나입니다.

1개의 답변

0 추천

webviewclient 중 아래의 메소드를 수정하세요

@Override

    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        view.loadUrl(url);

        return true;

    }

aucd29 (218,390 포인트) 님이 2016년 9월 29일 답변
MyWebViewClient클래스에서 shouldOverrideUrlLoading 메소드를 그렇게 작성했지만 여전히 오류가나네요 ㅠㅠ
WebView mywebview = (WebView) findViewById(R.id.webview);  이한줄을 빼면 웹브라우저라도 실행은되고 추가를하면 앱실행오류가뜨네요 ㅜ.ㅜ
오류가 나면 오류 로그를 올리세요
답변감사합니다
09-29 07:27:53.610: I/WebViewFactory(1158): Loading com.android.webview version 39 (1737576-arm) (code 300001)
09-29 07:28:01.728: I/LibraryLoader(1158): Time to load native libraries: 214 ms (timestamps 3699-3913)
09-29 07:28:01.731: I/LibraryLoader(1158): Expected native library version number "",actual native library version number ""
09-29 07:28:01.801: V/WebViewChromiumFactoryProvider(1158): Binding Chromium to main looper Looper (main, tid 1) {1f683808}
09-29 07:28:01.803: I/LibraryLoader(1158): Expected native library version number "",actual native library version number ""
09-29 07:28:01.830: I/chromium(1158): [INFO:library_loader_hooks.cc(104)] Chromium logging enabled: level = 0, default verbosity = 0
09-29 07:28:01.922: I/BrowserStartupController(1158): Initializing chromium process, singleProcess=true
09-29 07:28:01.937: W/art(1158): Attempt to remove local handle scope entry from IRT, ignoring
09-29 07:28:02.103: W/AudioManagerAndroid(1158): Requires BLUETOOTH permission
09-29 07:28:02.150: W/chromium(1158): [WARNING:resource_bundle.cc(304)] locale_file_path.empty()
09-29 07:28:02.162: I/chromium(1158): [INFO:aw_browser_main_parts.cc(65)] Load from apk succesful, fd=31 off=46184 len=3037
09-29 07:28:02.174: I/chromium(1158): [INFO:aw_browser_main_parts.cc(78)] Loading webviewchromium.pak from, fd:32 off:229484 len:1089587
09-29 07:28:02.262: E/chromium(1158): [ERROR:gl_surface_egl.cc(165)] No suitable EGL configs found.
09-29 07:28:02.262: E/chromium(1158): [ERROR:gl_surface_android.cc(23)] GLSurfaceEGL::InitializeOneOff failed.
09-29 07:28:02.263: E/chromium(1158): [ERROR:browser_main_loop.cc(988)] GLSurface::InitializeOneOff failed
09-29 07:28:02.686: W/chromium(1158): [WARNING:data_reduction_proxy_settings.cc(331)] SPDY proxy OFF at startup
09-29 07:28:02.789: W/art(1158): Attempt to remove local handle scope entry from IRT, ignoring
09-29 07:28:02.838: W/AwContents(1158): onDetachedFromWindow called when already detached. Ignoring
09-29 07:28:02.981: D/SystemWebViewEngine(1158): CordovaWebView is running on device made by: unknown
09-29 07:28:03.010: W/art(1158): Attempt to remove local handle scope entry from IRT, ignoring
09-29 07:28:03.010: W/art(1158): Attempt to remove local handle scope entry from IRT, ignoring
09-29 07:28:03.144: I/art(1158): Background sticky concurrent mark sweep GC freed 3754(266KB) AllocSpace objects, 2(32KB) LOS objects, 0% free, 4MB/4MB, paused 5.196ms total 266.166ms
09-29 07:28:03.561: I/art(1158): Background partial concurrent mark sweep GC freed 773(62KB) AllocSpace objects, 0(0B) LOS objects, 40% free, 4MB/7MB, paused 3.190ms total 209.554ms
09-29 07:28:03.639: D/AndroidRuntime(1158): Shutting down VM
09-29 07:28:03.639: D/AndroidRuntime(1158): --------- beginning of crash
09-29 07:28:03.652: E/AndroidRuntime(1158): FATAL EXCEPTION: main
09-29 07:28:03.652: E/AndroidRuntime(1158): Process: com.newism.ism, PID: 1158
09-29 07:28:03.652: E/AndroidRuntime(1158): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.newism.ism/com.newism.ism.MainActivity}: java.lang.ClassCastException: android.webkit.WebViewClient cannot be cast to org.apache.cordova.engine.SystemWebViewClient
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.os.Handler.dispatchMessage(Handler.java:102)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.os.Looper.loop(Looper.java:135)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.main(ActivityThread.java:5257)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at java.lang.reflect.Method.invoke(Native Method)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at java.lang.reflect.Method.invoke(Method.java:372)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-29 07:28:03.652: E/AndroidRuntime(1158): Caused by: java.lang.ClassCastException: android.webkit.WebViewClient cannot be cast to org.apache.cordova.engine.SystemWebViewClient
09-29 07:28:03.652: E/AndroidRuntime(1158):     at org.apache.cordova.engine.SystemWebView.setWebViewClient(SystemWebView.java:70)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.newism.ism.MainActivity.onCreate(MainActivity.java:63)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.Activity.performCreate(Activity.java:5990)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-29 07:28:03.652: E/AndroidRuntime(1158):     ... 10 more


이렇게뜹니다
오류만 따로입니다.
09-29 07:28:02.262: E/chromium(1158): [ERROR:gl_surface_egl.cc(165)] No suitable EGL configs found.
09-29 07:28:02.262: E/chromium(1158): [ERROR:gl_surface_android.cc(23)] GLSurfaceEGL::InitializeOneOff failed.
09-29 07:28:02.263: E/chromium(1158): [ERROR:browser_main_loop.cc(988)] GLSurface::InitializeOneOff failed
09-29 07:28:03.652: E/AndroidRuntime(1158): FATAL EXCEPTION: main
09-29 07:28:03.652: E/AndroidRuntime(1158): Process: com.newism.ism, PID: 1158
09-29 07:28:03.652: E/AndroidRuntime(1158): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.newism.ism/com.newism.ism.MainActivity}: java.lang.ClassCastException: android.webkit.WebViewClient cannot be cast to org.apache.cordova.engine.SystemWebViewClient
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.os.Handler.dispatchMessage(Handler.java:102)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.os.Looper.loop(Looper.java:135)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.main(ActivityThread.java:5257)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at java.lang.reflect.Method.invoke(Native Method)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at java.lang.reflect.Method.invoke(Method.java:372)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-29 07:28:03.652: E/AndroidRuntime(1158): Caused by: java.lang.ClassCastException: android.webkit.WebViewClient cannot be cast to org.apache.cordova.engine.SystemWebViewClient
09-29 07:28:03.652: E/AndroidRuntime(1158):     at org.apache.cordova.engine.SystemWebView.setWebViewClient(SystemWebView.java:70)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at com.newism.ism.MainActivity.onCreate(MainActivity.java:63)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.Activity.performCreate(Activity.java:5990)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-29 07:28:03.652: E/AndroidRuntime(1158):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-29 07:28:03.652: E/AndroidRuntime(1158):     ... 10 more
...