2013-06-05 64 views
2

恢复我的PhoneGap的应用程序时,当我开始我的应用程序,让它运行,后来回来它,然后点击应用程序图标,我经常得到的,“不幸的是,已经停止”。然后我再运行它,它很好。起初我认为这是因为任务杀手,但我从杀人名单中删除它,我仍然得到它。调试转储低于:“不幸的是,<myApp>已停止”在Android

06-04 15:06:35.700: E/Trace(22780): error opening trace file: No such file or directory (2) 
06-04 15:06:35.700: D/ActivityThread(22780): setTargetHeapUtilization:0.25 
06-04 15:06:35.700: D/ActivityThread(22780): setTargetHeapIdealFree:8388608 
06-04 15:06:35.700: D/ActivityThread(22780): setTargetHeapConcurrentStart:2097152 
06-04 15:06:35.800: D/webcoreglue(22780): netstack: Memory Cache feature is ON 
06-04 15:06:35.820: I/CordovaLog(22780): Changing log level to DEBUG(3) 
06-04 15:06:35.820: I/CordovaLog(22780): Found preference for useBrowserHistory=false 
06-04 15:06:35.820: D/CordovaLog(22780): Found preference for useBrowserHistory=false 
06-04 15:06:35.820: I/CordovaLog(22780): Found preference for exit-on-suspend=false 
06-04 15:06:35.820: D/CordovaLog(22780): Found preference for exit-on-suspend=false 
06-04 15:06:35.820: W/CordovaWebView(22780): useBrowserHistory=false is deprecated as of Cordova 2.2.0 and will be removed six months after the 2.2.0 release. Please use the browser history and use history.back(). 
06-04 15:06:35.830: D/JsMessageQueue(22780): Set native->JS mode to 2 
06-04 15:06:35.830: D/DroidGap(22780): DroidGap.init() 
06-04 15:06:35.840: D/LMLC(22780): After Restoring the state 
06-04 15:06:35.840: D/LMLC(22780): In onRestoreInstanceState 
06-04 15:06:35.840: D/LMLC(22780): After onRestoreInstanceState 
06-04 15:06:35.840: D/LMLC(22780): After restoreState 
06-04 15:06:35.840: D/DroidGap(22780): Resuming the App 
06-04 15:06:35.860: D/SoftKeyboardDetect(22780): Ignore this event 
06-04 15:06:35.880: D/libEGL(22780): loaded /system/lib/egl/libEGL_adreno200.so 
06-04 15:06:35.900: D/libEGL(22780): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
06-04 15:06:35.900: D/libEGL(22780): loaded /system/lib/egl/libGLESv2_adreno200.so 
06-04 15:06:35.950: V/chromium(22780): external/chromium/net/host_resolver_helper/host_resolver_helper.cc:66: [0604/150635:INFO:host_resolver_helper.cc(66)] DNSPreResolver::Init got hostprovider:0x4d125010 
06-04 15:06:35.950: V/chromium(22780): external/chromium/net/base/host_resolver_impl.cc:1510: [0604/150635:INFO:host_resolver_impl.cc(1510)] HostResolverImpl::SetPreresolver preresolver:0x4be93670 
06-04 15:06:35.950: D/HostStatisticManager(22780): netstack: DNS Host Prioritization is: ON, Version: 5.0.1 
06-04 15:06:35.970: D/(22780): dl error message Cannot load library: load_library[1093]: Library 'libtcpfinaggr.so' not found 
06-04 15:06:35.970: D/Socket_Pool(22780): Failed to create TCP Fin Aggregation interface. 
06-04 15:06:35.970: D/Socket_Pool(22780): netstack: CloseUnusedSockets is ON 
06-04 15:06:35.970: D/Socket_Pool(22780): netstack: system net.statistics value: 0 
06-04 15:06:35.970: D/Socket_Pool(22780): Failed to create TCP Fin Aggregation interface. 
06-04 15:06:35.970: D/Socket_Pool(22780): netstack: CloseUnusedSockets is ON 
06-04 15:06:35.970: D/Socket_Pool(22780): netstack: system net.statistics value: 0 
06-04 15:06:35.970: D/(22780): external/chromium/net/http/http_getzip_factory.cc: Failed to construct GETzip manager, didn't find the library! 
06-04 15:06:35.980: I/Adreno200-EGLSUB(22780): <ConfigWindowMatch:2087>: Format RGBA_8888. 
06-04 15:06:36.081: E/(22780): <s3dReadConfigFile:75>: Can't open file for reading 
06-04 15:06:36.081: E/(22780): <s3dReadConfigFile:75>: Can't open file for reading 
06-04 15:06:36.081: D/OpenGLRenderer(22780): Enabling debug mode 0 
06-04 15:06:36.171: D/DroidGap(22780): onMessage(onPageStarted,file:///android_asset/www/index.html) 
06-04 15:06:36.181: D/SoftKeyboardDetect(22780): Ignore this event 
06-04 15:06:36.321: D/netstack(22780): netstack: Request Priority is ON 
06-04 15:06:36.641: D/chromium(22780): Unknown chromium error: -6 
06-04 15:06:36.941: D/Cordova(22780): onPageFinished(file:///android_asset/www/index.html) 
06-04 15:06:36.941: D/AndroidRuntime(22780): Shutting down VM 
06-04 15:06:36.941: W/dalvikvm(22780): threadid=1: thread exiting with uncaught exception (group=0x40d01438) 
06-04 15:06:36.951: E/AndroidRuntime(22780): FATAL EXCEPTION: main 
06-04 15:06:36.951: E/AndroidRuntime(22780): java.lang.NullPointerException 
06-04 15:06:36.951: E/AndroidRuntime(22780): at java.lang.String.indexOf(String.java:994) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at org.apache.cordova.CordovaWebView.loadUrlNow(CordovaWebView.java:517) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at org.apache.cordova.CordovaWebView.loadUrl(CordovaWebView.java:402) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at org.apache.cordova.CordovaWebViewClient.onPageFinished(CordovaWebViewClient.java:298) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:327) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at android.os.Looper.loop(Looper.java:137) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at android.app.ActivityThread.main(ActivityThread.java:5021) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at java.lang.reflect.Method.invoke(Method.java:511) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
06-04 15:06:36.951: E/AndroidRuntime(22780): at dalvik.system.NativeStart.main(Native Method) 
06-04 15:06:38.603: V/chromium(22780): external/chromium/net/disk_cache/hostres_plugin_bridge.cc:52: [0604/150638:INFO:hostres_plugin_bridge.cc(52)] StatHubCreateHostResPlugin initializing... 
06-04 15:06:38.603: V/chromium(22780): external/chromium/net/disk_cache/hostres_plugin_bridge.cc:57: [0604/150638:INFO:hostres_plugin_bridge.cc(57)] StatHubCreateHostResPlugin lib loaded 
06-04 15:06:38.603: V/chromium(22780): external/chromium/net/disk_cache/hostres_plugin_bridge.cc:63: [0604/150638:INFO:hostres_plugin_bridge.cc(63)] StatHubCreateHostResPlugin plugin connected 
06-04 15:06:38.603: V/chromium(22780): external/chromium/net/http/http_cache.cc:1168: [0604/150638:INFO:http_cache.cc(1168)] HttpCache::OnBackendCreated HostStat created 
06-04 15:06:38.603: E/chromium(22780): external/chromium/net/disk_cache/stat_hub.cc:216: [0604/150638:ERROR:stat_hub.cc(216)] StatHub::Init - App com.lmlc.lawnpro isn't supported. 
06-04 15:06:38.633: V/chromium(22780): external/chromium/net/disk_cache/hostres_plugin_bridge.cc:73: [0604/150638:INFO:hostres_plugin_bridge.cc(73)] netstack: Failed to find symbols in plugin: libdnshostprio.so 
06-04 15:06:38.633: E/chromium(22780): external/chromium/net/disk_cache/stat_hub.cc:216: [0604/150638:ERROR:stat_hub.cc(216)] StatHub::Init - App com.lmlc.lawnpro isn't supported. 
06-04 15:06:38.633: D/(22780): netstack: Early Connections is: ON, Version: 5.0.1, Param: 3 

Java代码的

package com.lmlc.lawnpro; 

    import org.apache.cordova.DroidGap; 
    import android.os.Bundle; 
    import android.util.Log; 
    import android.view.Menu; 
    import android.webkit.WebView; 

    public class MainActivity extends DroidGap { 

     private JavascriptInterface jSInterface; 
     protected WebView webView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.init(); 
     jSInterface = new JavascriptInterface(this, appView); 
     appView.addJavascriptInterface(jSInterface, "JICls"); 

     //setContentView(R.layout.activity_main); 

      if(savedInstanceState == null || savedInstanceState.isEmpty()) 
     { 
      super.loadUrl("file:///android_asset/www/index.html"); 
      Log.d("LMLCPro", "super.loadUrl"); 
     } 
      else 
      { 
      this.appView.restoreState(savedInstanceState); 
      Log.d("LMLC", "After Restoring the state"); 
     } 

     //setContentView(R.layout.activity_main); 
     //super.loadUrl("file:///android_asset/www/index.html"); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) 
    { 
     Log.d("LMLC", "In onSaveInstanceState"); 
     super.onSaveInstanceState(outState); 
     Log.d("LMLC", "After onSaveInstanceState"); 
     this.appView.saveState(outState); 
     Log.d("LMLC", "After saveState"); 
    //   outState.putBoolean("MyBoolean", true); 
    //   outState.putDouble("myDouble", 1.9); 
    //   outState.putInt("MyInt", 1); 
    //   outState.putString("MyString", "Welcome back to Android"); 


    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) 
    { 
     Log.d("LMLC", "In onRestoreInstanceState"); 
     super.onRestoreInstanceState(savedInstanceState); 
     Log.d("LMLC", "After onRestoreInstanceState"); 
     // Restore the state of the WebView 
     this.appView.restoreState(savedInstanceState); 
     Log.d("LMLC", "After restoreState"); 
    } 
    /* 
     @Override 
     public void onResume() { 
      super.onResume(); 
      this.appView.handleResume(true, false); 
     } 
    */ 
     @Override 
     public void onPause() { 
      super.onPause(); 
      String url = this.appView.peekAtUrlStack(); 
      this.appView.handlePause(true); 

      Bundle out = new Bundle(); 
      this.appView.saveState(out); 
      out.putString("url", url); 

      //saveToPreferences(out); 

     } 

     @Override 
     public void onStop() { 
      super.onStop(); 
     } 

    @Override 
     public void onDestroy() { 
      super.onDestroy(); 

     } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 


    public class JavascriptInterface { 

      //private WebView mAppView; 
      private MainActivity mGap; 

      public JavascriptInterface(MainActivity gap, WebView view) 
      { 
    //   mAppView = view; 
      mGap = gap; 
      } 

     } 


    } 
+0

我查看了CordovaWebview的代码[这里](https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaWebView.java),我不知道看不到indexOf的调用。你能告诉我你正在使用什么版本的Cordova吗?或者,甚至更好,找到这个调用的代码片段? – verybadalloc

+0

我的Jar文件是cordova-2.3.0.jar。 java代码非常简单,我已经将它发布在上面的原始问题中。 – user1798818

+0

这确实是一个非常有趣的错误。在[科尔多瓦的(https://github.com/apache/cordova-android/blob/a0d2b96de6c13dc61cbe4701c8fbf10350a41845/framework/src/org/apache/cordova/CordovaWebView.java)代码一些挖后,似乎网址将成为空,虽然它已正确登录onPageFinished。你能用早期的版本来试用你的相同的代码,比如说2.4吗? – verybadalloc

回答

0

我升级了.jar文件和科尔多瓦JavaScript文件它2.7。我也删除了2行代码:

String url = this.appView.peekAtUrlStack(); 
out.putString("url", url); 

这似乎解决了它。