アプリケーションのデバッグについて助けが必要です。まず第一に、エミュレーターやその他のデバイスでは、アプリは正常に動作しています。私のデバイスでは、(強制終了メッセージなしで)強制終了しました。
アプリのアクティビティが変更されると、「クラッシュ」が発生します。
MainActivity
これがクラスのコードです。WebView を介して Web ページから HTML コンテンツを読み取るだけです。いいえ、HttpRequest
投稿リクエストをシミュレートできなかったため、これをやり直すことはできません。
public class MainActivity extends Activity {
public final static String EXTRA_HTML = "com.example.com.test.HTML";
private WebView mWebView;
private ProgressDialog mDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webView1);
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
mWebView.setBackgroundColor(0);
mWebView.setWebChromeClient(new WebChromeClient() {
public boolean onConsoleMessage(ConsoleMessage cmsg) {
if (cmsg.message().startsWith("MAGIC")) {
mDialog.cancel();
/*HashMap<String, String> message = new HashMap<String, String>();*/
String msg = cmsg.message().substring(5);
Intent intent = new Intent(MainActivity.this,
ReadDataActivity.class);
/*message.put("message", msg);*/
/*intent.putExtra(EXTRA_HTML, message);*/
intent.putExtra(EXTRA_HTML, msg);
startActivity(intent);
}
return false;
}
});
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginState(PluginState.OFF);
mWebView.getSettings().setLoadsImagesAutomatically(false);
mWebView.getSettings().setBlockNetworkImage(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setSavePassword(true);
mWebView.getSettings()
.setCacheMode(WebSettings.LOAD_NORMAL);
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String address) {
if (address.indexOf("mySession") != -1) {
view.loadUrl("javascript:console.log('MAGIC'+document.getElementsByTagName('html')[0].innerHTML);");
}
});
mWebView.loadUrl("http://www.myurl.de");
}
そのため、このonConsoleMessage()
メソッドでは、html コードを別の Activity クラスに渡し、コンテンツを読み取り、解析して表示します。
問題は、この時点でReadDataActivity
クラスをロードする必要があるときに、アプリケーションを閉じて、メッセージやユーザー ダイアログなしでホーム画面に戻ることです。
に文字列として渡される html コードがReadDataActivity
大きすぎる可能性はありますか? また、HashMap に html コードを文字列として追加しようとしましたが、問題は同じです。
問題をデバッグするために私ができることは何ですか? Parcelable
たぶん私はオブジェクトを作成しようとするべきですか?
エミュレーターでは、すべて正常に動作しています。