Androidアプリケーションを保存し、再開時に復元するという単純な側面を理解しようとしています。私は答えを求めてサーフィンをしましたが、何も機能しません。開発中のアプリで問題が発生したため、以下のテストアプリにまとめました。どこかでnullポインタを取得しています。ロードする基本的なHTMLページがあります。電話を回転させると、保存しようとしますが、正しく復元されません。ここで何が欠けていますか?
これは私の活動です:
package com.example.saverestore;
import org.apache.cordova.DroidGap;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
if(savedInstanceState == null || savedInstanceState.isEmpty())
{
Log.d("RGiTest", "super.loadUrl");
super.loadUrl("file:///android_asset/www/index.html");
}
else
{
Log.d("RGiTest", "Restoring the state");
this.appView.restoreState(savedInstanceState);
}
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
this.appView.saveState(outState);
}
}
これは私のindex.htmlです:
<!DOCTYPE HTML>
<html>
<head>
<title>Save Restore</title>
</head>
<body style="background-color: #000000">
<h1 style="margin-left: 40px; color: #FF0000;">Test Save/Restore</h1>
</body>
</html>
電話を回転させると、次のエラーが発生します。
01-31 14:18:31.707: D/DroidGap(3129): onMessage(onPageStarted,file:///android_asset/www/index.html)
01-31 14:18:31.726: D/Cordova(3129): onPageFinished(file:///android_asset/www/index.html)
01-31 14:20:15.183: D/AndroidRuntime(3129): Shutting down VM
01-31 14:20:15.183: W/dalvikvm(3129): threadid=1: thread exiting with uncaught exception (group=0x40015578)
01-31 14:20:15.246: E/AndroidRuntime(3129): FATAL EXCEPTION: main
01-31 14:20:15.246: E/AndroidRuntime(3129): java.lang.NullPointerException
01-31 14:20:15.246: E/AndroidRuntime(3129): at java.lang.String.indexOf(String.java:1145)
01-31 14:20:15.246: E/AndroidRuntime(3129): at org.apache.cordova.CordovaWebView.loadUrlNow(CordovaWebView.java:517)
01-31 14:20:15.246: E/AndroidRuntime(3129): at org.apache.cordova.CordovaWebView.loadUrl(CordovaWebView.java:402)
01-31 14:20:15.246: E/AndroidRuntime(3129): at org.apache.cordova.CordovaWebViewClient.onPageFinished(CordovaWebViewClient.java:298)
01-31 14:20:15.246: E/AndroidRuntime(3129): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:282)
01-31 14:20:15.246: E/AndroidRuntime(3129): at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 14:20:15.246: E/AndroidRuntime(3129): at android.os.Looper.loop(Looper.java:130)
01-31 14:20:15.246: E/AndroidRuntime(3129): at android.app.ActivityThread.main(ActivityThread.java:3687)
01-31 14:20:15.246: E/AndroidRuntime(3129): at java.lang.reflect.Method.invokeNative(Native Method)
01-31 14:20:15.246: E/AndroidRuntime(3129): at java.lang.reflect.Method.invoke(Method.java:507)
01-31 14:20:15.246: E/AndroidRuntime(3129): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-31 14:20:15.246: E/AndroidRuntime(3129): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-31 14:20:15.246: E/AndroidRuntime(3129): at dalvik.system.NativeStart.main(Native Method)
誰かがこれについてアドバイスや指示を与えることができますか?
ありがとう