2017-10-18 20 views
0

J'essaie d'ajouter WebView à mon activité:Exception sur les nouvelles WebView sur Lollipop 5.1 dispositifs

WebView webView = new WebView(this); 

Sur tous les appareils ce beau travail, mais sur Android Lollipop 5.1 dispositifs (seulement) je suis arrivé exception dans cette ligne:

10-18 12:04:29.741 13131-13131/xx.xxxxxx E/AndroidRuntime: FATAL EXCEPTION: main 
Process: xx.xxxxxx, PID: 13131 
java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxxxxx/xx.xxxxxx.activity.login.UseActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x2040003 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
    at android.app.ActivityThread.access$800(ActivityThread.java:151) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5254) 
    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:903) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
     Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003 
     at android.content.res.Resources.getText(Resources.java:299) 
     at android.content.res.Resources.getString(Resources.java:385) 
     at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684) 
     at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608) 
     at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631) 
     at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:780) 
     at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:619) 
     at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:556) 
     at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:311) 
     at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:96) 
     at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:263) 
     at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:123) 
     at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:110) 
     at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144) 
     at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:107) 
     at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:260) 
     at android.webkit.WebView.<init>(WebView.java:554) 
     at android.webkit.WebView.<init>(WebView.java:489) 
     at android.webkit.WebView.<init>(WebView.java:472) 
     at android.webkit.WebView.<init>(WebView.java:459) 
     at android.webkit.WebView.<init>(WebView.java:449) 
     at xx.xxxxxx.activity.login.UseActivity.onActivityCreate(UseActivity.java:69) 
     at xx.xxxxxx.activity.BaseActivity.onCreate(BaseActivity.java:148) 
     at android.app.Activity.performCreate(Activity.java:5990) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5254) 
     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:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

ce que je fais mal et ce qui est la meilleure façon pour la solution sur Android 5.1 Lollipop appareils.

+0

'Ressources $ NotFoundException' –

+0

oui, mais pourquoi des exceptions uniquement sur les appareils 5.1 (probablement 5.1 avec Google Play Services non installé ou compte Google non enregistré sur deveice)? –

+0

partager votre code UseActivity & BaseActivity – Mehta

Répondre

0

Cela peut être corrigé en attrapant l'erreur, puis en créant le WebView avec le contexte de l'application à la place:

try { 
    webView = new WebView(this); 
} 
catch (Resources.NotFoundException e) { 
    // Some older devices can crash when instantiating a WebView, due to a Resources$NotFoundException 
    // Creating with the application Context fixes this, but is not generally recommended for view creation 
    webView = new WebView(getApplicationContext()); 
} 

Création de vues avec le contexte d'application est généralement déconseillé, mais est un repli sur OK ici.