gmail.com не работает на webview (после входа в систему) - PullRequest
0 голосов
/ 23 октября 2010

У меня в приложении есть веб-просмотр, который обычно отлично работает для загрузки веб-сайтов.Но я не могу заставить www.gmail.com работать : когда я открываю www.gmail.com, я вижу страницу входа в систему, пытаюсь войти, после чего экран становится черным, и мое приложение / процесс завершается.

Я не вижу много в моем logcat, просто сбрасывается какая-то странная отладочная информация, как показано ниже.

Но обычно сайты https работают нормально, и даже более сложные процедуры входа, такие как открытие stackoverflow.com, вход через openid через https, обратно в stackoverflow, все работает без проблем в моем веб-обозрении.Только gmail.com дает мне эти проблемы.

Изменить: я обнаружил, что если я не назначу свой пользовательский MyWebViewClient для веб-просмотра, приложение не падает, но открывает сайт Gmail в системном браузере по умолчанию.Но я этого не хочу.Я хочу, чтобы он открывался только в моем собственном веб-представлении.

Я создал отчет об ошибке в http://code.google.com/p/android/issues/detail?id=12097,, прикрепленный к нему, - рабочий очень простой пример проекта, который воспроизводит сбой.

I/DEBUG   ( 2173): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 2173): Build fingerprint: 'Samsung/GT-I9000/GT-I9000/GT-I9000:2.1-update1/ECLAIR/XWJM6:user/release-keys'
I/DEBUG   ( 2173): pid: 6753, tid: 6793  >>> com.myapplication.android <<<
I/DEBUG   ( 2173): signal 11 (SIGSEGV), fault addr 0000004c
I/DEBUG   ( 2173):  r0 00000000  r1 00000000  r2 00000000  r3 aa476ae0
I/DEBUG   ( 2173):  r4 00000000  r5 4c2f5b74  r6 aa476ae0  r7 00595dec
I/DEBUG   ( 2173):  r8 4c2f5da8  r9 444a7eb8  10 444a7ea0  fp 004be758
I/DEBUG   ( 2173):  ip aa4770fc  sp 4c2f5b50  lr aa1112bf  pc aac0a5ac  cpsr 48000030
I/DEBUG   ( 2173):          #00  pc 0000a5ac  /system/lib/libsqlite.so
I/DEBUG   ( 2173):          #01  pc 001112bc  /system/lib/libwebcore.so
I/DEBUG   ( 2173):          #02  pc 001118e2  /system/lib/libwebcore.so
I/DEBUG   ( 2173):          #03  pc 00111a80  /system/lib/libwebcore.so
I/DEBUG   ( 2173):
I/DEBUG   ( 2173): code around pc:
I/DEBUG   ( 2173): aac0a59c f7ff60e3 2000fd49 bf00bd70 4604b570
I/DEBUG   ( 2173): aac0a5ac 460d6cc0 f7ff4616 f8c4fd9d 230150e0
I/DEBUG   ( 2173): aac0a5bc 60e4f8c4 508cf8d4 f885e002 68ad30ff
I/DEBUG   ( 2173):
I/DEBUG   ( 2173): code around lr:
I/DEBUG   ( 2173): aa1112ac 68004905 e0021859 68002100 f6f9460a
I/DEBUG   ( 2173): aa1112bc bd10ec32 0036583c ffc9a849 4604b570
I/DEBUG   ( 2173): aa1112cc 46281d05 fd64f20b 46286826 60263e01
I/DEBUG   ( 2173):
I/DEBUG   ( 2173): stack:
I/DEBUG   ( 2173):     4c2f5b10  00000000
I/DEBUG   ( 2173):     4c2f5b14  aa31c6d3  /system/lib/libwebcore.so
I/DEBUG   ( 2173):     4c2f5b18  00000000
I/DEBUG   ( 2173):     4c2f5b1c  aa011171  /system/lib/libwebcore.so
I/DEBUG   ( 2173):     4c2f5b20  00000000
I/DEBUG   ( 2173):     4c2f5b24  afe3ae08  /system/lib/libc.so
I/DEBUG   ( 2173):     4c2f5b28  afe3db7c
I/DEBUG   ( 2173):     4c2f5b2c  afe0f170  /system/lib/libc.so
I/DEBUG   ( 2173):     4c2f5b30  00000000
I/DEBUG   ( 2173):     4c2f5b34  afe3ae08  /system/lib/libc.so
I/DEBUG   ( 2173):     4c2f5b38  00595dec  [heap]
I/DEBUG   ( 2173):     4c2f5b3c  afe0f170  /system/lib/libc.so
I/DEBUG   ( 2173):     4c2f5b40  00595ddc  [heap]
I/DEBUG   ( 2173):     4c2f5b44  4c2f5b74
I/DEBUG   ( 2173):     4c2f5b48  df002777
I/DEBUG   ( 2173):     4c2f5b4c  e3a070ad
I/DEBUG   ( 2173): #00 4c2f5b50  00595ddc  [heap]
I/DEBUG   ( 2173):     4c2f5b54  4c2f5b74
I/DEBUG   ( 2173):     4c2f5b58  aa476ae0  /system/lib/libwebcore.so
I/DEBUG   ( 2173):     4c2f5b5c  aa1112bf  /system/lib/libwebcore.so
I/DEBUG   ( 2173): #01 4c2f5b60  00595ddc  [heap]
I/DEBUG   ( 2173):     4c2f5b64  aa1118e7  /system/lib/libwebcore.so
D/Zygote  ( 2181): Process 6753 terminated by signal (11)
I/ActivityManager( 2237): Process com.myapplication.android (pid 6753) has died.

XML:

    <WebView
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:theme="@style/Theme.NoBackground"
        android:id="@+id/webView"/>

Код:

    webView = (WebView)findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.getSettings().setAllowFileAccess(false);        
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setPluginsEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setAppCacheEnabled(true); 

    WebViewClient wv = new MyWebViewClient();
    webView.setWebViewClient(wv);

/**
 * Customized webview client to allow mp4 to play in mediaplayer.
 */
final class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.endsWith(".mp4")) {
        Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));
        view.getContext().startActivity(intent);            
        return true;
    } else {            
        return super.shouldOverrideUrlLoading(view, url);
        // instead of the line above, I have also tried this before without any difference:
        // view.loadUrl(url);
        // return true;
    }
}

1 Ответ

1 голос
/ 28 октября 2010

Я пришел к выводу, что это ошибка. Отчет об ошибке: http://code.google.com/p/android/issues/detail?id=12097, и я также получил Марка Мерфи, который подтвердил в списке рассылки Android Dev, что это, вероятно, ошибка ОС Android низкого уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...