1

我正在使用Ionic框架和AngularJS构建应用程序。它曾经运行良好,现在它一旦在模拟器和Android设备中启动就会崩溃。奇怪的是它在Ionic View应用程序中运行良好(http://view.ionic.io/)。 logcat说这个错误是一个NullPointerException。Android模拟器和设备上的离子应用程序崩溃

真正令我担心的是我没有做任何大的改变,另一个应用程序也开始失败。 Ionic Cordova如何失败?

完整的logcat坠机的部分说:

--------- beginning of crash 
E/AndroidRuntime(2227): FATAL EXCEPTION: main 
E/AndroidRuntime(2227): Process: com.ionicframework.notpush921844, PID: 2227 
E/AndroidRuntime(2227): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ionicframework.notpush921844/com.ionicframework.notpush921844.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference 
E/AndroidRuntime(2227): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
E/AndroidRuntime(2227): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
E/AndroidRuntime(2227): at android.app.ActivityThread.access$800(ActivityThread.java:144) 
E/AndroidRuntime(2227): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
E/AndroidRuntime(2227): at android.os.Handler.dispatchMessage(Handler.java:102) 
E/AndroidRuntime(2227): at android.os.Looper.loop(Looper.java:135) 
E/AndroidRuntime(2227): at android.app.ActivityThread.main(ActivityThread.java:5221) 
E/AndroidRuntime(2227): at java.lang.reflect.Method.invoke(Native Method) 
E/AndroidRuntime(2227): at java.lang.reflect.Method.invoke(Method.java:372) 
E/AndroidRuntime(2227): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
E/AndroidRuntime(2227): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
E/AndroidRuntime(2227): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference 
E/AndroidRuntime(2227): at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:169) 
E/AndroidRuntime(2227): at org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:95) 
E/AndroidRuntime(2227): at org.apache.cordova.PluginManager.init(PluginManager.java:84) 
E/AndroidRuntime(2227): at org.apache.cordova.CordovaWebViewImpl.init(CordovaWebViewImpl.java:116) 
E/AndroidRuntime(2227): at org.apache.cordova.CordovaActivity.init(CordovaActivity.java:138) 
E/AndroidRuntime(2227): at org.apache.cordova.CordovaActivity.loadUrl(CordovaActivity.java:209) 
E/AndroidRuntime(2227): at com.ionicframework.notpush921844.MainActivity.onCreate(MainActivity.java:32) 
E/AndroidRuntime(2227): at android.app.Activity.performCreate(Activity.java:5937) 
E/AndroidRuntime(2227): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
E/AndroidRuntime(2227): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
E/AndroidRuntime(2227): ... 10 more 
W/ActivityManager(1219): Force finishing activity com.ionicframework.notpush921844/.MainActivity 
I/WindowManager(1219): Screenshot max retries 4 of Token{f511ccd ActivityRecord{230d3264 u0 com.ionicframework.notpush921844/.MainActivity t61 f}} appWin=Window{1adfb8c9 u0 Starting com.ionicframework.notpush921844} drawState=4 
E/ActivityManager(1219): Invalid thumbnail dimensions: 576x576 
D/OpenGLRenderer(1219): Render dirty regions requested: true 
D/Atlas (1219): Validating map... 
D/  (1219): HostConnection::get() New Host Connection established 0x9de19530, tid 2264 
I/OpenGLRenderer(1219): Initialized EGL, version 1.4 
D/OpenGLRenderer(1219): Enabling debug mode 0 
W/EGL_emulation(1219): eglSurfaceAttrib not implemented 
W/OpenGLRenderer(1219): Failed to set EGL_SWAP_BEHAVIOR on surface 0x9de3eb40, error=EGL_SUCCESS 
W/ActivityManager(1219): Activity pause timeout for ActivityRecord{230d3264 u0 com.ionicframework.notpush921844/.MainActivity t61 f} 
W/EGL_emulation(1475): eglSurfaceAttrib not implemented 
W/OpenGLRenderer(1475): Failed to set EGL_SWAP_BEHAVIOR on surface 0xb0a93b40, error=EGL_SUCCESS 
W/OpenGLRenderer(1475): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... 
W/OpenGLRenderer(1475): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... 
W/OpenGLRenderer(1475): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... 
I/iu.UploadsManager(1746): End new media; added: 0, uploading: 0, time: 28 ms 
V/ConfigFetchTask(1746): ConfigFetchTask getDeviceDataVersionInfo(): ABFEt1ViXdAKZc6rqCAOLFv7YJuwVLSY9_n4gaUyYMJPnZLeFSYFobS5FdRKHo-hnBvGnh1pycqXDTZLbzD-k5JtupkV7UW73Ugga_ju-VhYkvWRtl_Jn90jZhoDq_QYlbboOgPzzxDKH54r4FIa2bH3M1p-U8uzShc-PuRzDfha4UOokdUFujGIG2kLo5vTf6UKiU8mrJ_i-n_s1sm2CNkFb7o3Q7f_N1keqlCKSvXmpOQwTd0C7WGOOCYVnk7105hhiah5iLKl_0ZmwnXt9YnD2hVSUAQyDJPeLsFPksOqBpS6WQgtxBQ 
I/GoogleURLConnFactory(1746): Using platform SSLCertificateSocketFactory 
W/ActivityThread(1746): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader()); 
I/ActivityManager(1219): Waited long enough for: ServiceRecord{39917cb u0 com.android.calendar/.alerts.InitAlarmsService} 
I/ConfigFetchService(1746): fetch service done; releasing wakelock 
I/ConfigFetchService(1746): stopping self 
W/ActivityManager(1219): Activity destroy timeout for ActivityRecord{230d3264 u0 com.ionicframework.notpush921844/.MainActivity t61 f} 
I/CheckinService(1746): Done disabling old GoogleServicesFramework version 
I/ConfigService(1598): onDestroy 
D/TaskPersister(1219): removeObsoleteFile: deleting file=61_task.xml 
D/InitAlarmsService(2008): Clearing and rescheduling alarms. 
I/ActivityManager(1219): Killing 1538:com.android.printspooler/u0a42 (adj 15): empty #17 
W/libprocessgroup(1219): failed to open /acct/uid_10042/pid_1538/cgroup.procs: No such file or directory 
W/AudioTrack(1219): AUDIO_OUTPUT_FLAG_FAST denied by client 
I/Process (2227): Sending signal. PID: 2227 SIG: 9 
I/ActivityManager(1219): Process com.ionicframework.notpush921844 (pid 2227) has died 
D/OpenGLRenderer(1219): endAllStagingAnimators on 0xa2fe5880 (RippleDrawable) with handle 0x9deaf750 
W/InputMethodManagerService(1219): Window already focused, ignoring focus gain of: [email protected] attribute=null, token = [email protected] 
+0

真的让我担心的是我没有做任何重大改变?你有没有把你的项目交给Crossover? (personnaly,crossover崩溃了我所有的项目;))你有没有添加/删除cordova插件?我建议你去离子平台rm android&ionic平台在重建之前添加android – aorfevre

+0

你是对的,就是这样。它现在工作正常,谢谢。 –

回答

9

原来问题是由添加的PhoneGap的PushPlugin造成的。我只需要删除android平台离子平台rm android然后再添加它与离子平台添加android。现在在仿真器和设备上都可以正常工作。

+0

谢谢,为我节省了很多时间! – Dirk

相关问题