Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ArcGIS for Android LocationService异常_Android_Arcgis - Fatal编程技术网

ArcGIS for Android LocationService异常

ArcGIS for Android LocationService异常,android,arcgis,Android,Arcgis,最近,我的Android项目从谷歌地图转到了ESRI ArcGIS,目前我正处于转型过程中。从那以后,我只遇到了一个小问题 每当我启用内置位置服务时,下面的代码就会抛出NullPointerException。而且LocationService.start调用是在try-catch块中还是在另一个线程中运行都无关紧要:应用程序只是崩溃了 下面是Activity类的一个片段: 这是它抛出的异常: 05-13 10:08:55.580: ERROR/AndroidRuntime(28355): ja

最近,我的Android项目从谷歌地图转到了ESRI ArcGIS,目前我正处于转型过程中。从那以后,我只遇到了一个小问题

每当我启用内置位置服务时,下面的代码就会抛出NullPointerException。而且LocationService.start调用是在try-catch块中还是在另一个线程中运行都无关紧要:应用程序只是崩溃了

下面是Activity类的一个片段:

这是它抛出的异常:

05-13 10:08:55.580: ERROR/AndroidRuntime(28355): java.lang.NullPointerException
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.esri.core.geometry.Envelope.<init>(Unknown Source)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.esri.core.map.LayerModel.setExtent(Unknown Source)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.esri.android.map.LayerView.onSizeChanged(Unknown Source)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.View.setFrame(View.java:7123)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.View.layout(View.java:7050)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.esri.android.map.MapView.onLayout(Unknown Source)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.View.layout(View.java:7056)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.View.layout(View.java:7056)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.View.layout(View.java:7056)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1744)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.os.Looper.loop(Looper.java:143)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at android.app.ActivityThread.main(ActivityThread.java:5068)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 10:08:55.580: ERROR/AndroidRuntime(28355):     at dalvik.system.NativeStart.main(Native Method)

我做错了什么?

这可能来得有点晚,但状态可能来自其他来源。 因此,映射就是在初始化其他内容时抛出null异常的对象

 if(source == map && status == STATUS.INITIALIZED) {
                    //set up location service
                    /*
                     * The following block throws exception and the application crashes.
                     * And it doesn't matter whether I run it from another thread or in a try-catch block!
                     */
                    new Handler().post(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                locationService = map.getLocationService();
                                locationService.setLocationListener(MapEsri.this);
    //                          locationService.setAccuracyCircleOn(true);
    //                          locationService.setBearing(true);
    //                          locationService.setAutoPan(true);
                                locationService.start();
                            }
                            catch(Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                }

您必须为位置创建自己的侦听器您是否为其绑定了任何侦听器?locationService.setLocationListenerMapEsri.this;
 if(source == map && status == STATUS.INITIALIZED) {
                    //set up location service
                    /*
                     * The following block throws exception and the application crashes.
                     * And it doesn't matter whether I run it from another thread or in a try-catch block!
                     */
                    new Handler().post(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                locationService = map.getLocationService();
                                locationService.setLocationListener(MapEsri.this);
    //                          locationService.setAccuracyCircleOn(true);
    //                          locationService.setBearing(true);
    //                          locationService.setAutoPan(true);
                                locationService.start();
                            }
                            catch(Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                }