2010-10-23 1 views
0

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

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

Но в целом сайты 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; 
    } 
} 
+0

такая же проблема с facebook.com - я думаю, что для всего веб-сайта требуется открыть новое окно браузера или браузер по умолчанию в системе. –

ответ

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^