Java 从KML加载映射时引发错误
我正在从kml文件在我的应用程序中加载地图(一周中的每一天加载一个不同的kml文件)。它直到最近才开始工作,我真的很困惑为什么我会出现这个错误,因为自从它基本正常工作以来,我还没有接触过我的代码的这一部分,现在我得到了一个XmlPullParserException:expected:/META-read:HEAD(在java.io中的位置:END_-TAG@1:355)。InputStreamReader@426ba9d0) 这是我的密码:Java 从KML加载映射时引发错误,java,android,google-maps,inputstream,kml,Java,Android,Google Maps,Inputstream,Kml,我正在从kml文件在我的应用程序中加载地图(一周中的每一天加载一个不同的kml文件)。它直到最近才开始工作,我真的很困惑为什么我会出现这个错误,因为自从它基本正常工作以来,我还没有接触过我的代码的这一部分,现在我得到了一个XmlPullParserException:expected:/META-read:HEAD(在java.io中的位置:END_-TAG@1:355)。InputStreamReader@426ba9d0) 这是我的密码: // set kml layers Stri
// set kml layers
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
InputStream inputStream = null;
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int value = preferences.getInt("DateStarted", 1);
Log.d(TAG, String.valueOf(value));
System.out.println("In Maps start day is " + String.valueOf(value));
try {
// get different maps on different days of the week
switch(value) {
case Calendar.MONDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/monday.kml").openStream();
break;
case Calendar.TUESDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/tuesday.kml").openStream();
break;
case Calendar.WEDNESDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/wednesday.kml").openStream();
break;
case Calendar.THURSDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/thursday.kml").openStream();
break;
case Calendar.FRIDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/thursday.kml").openStream();
break;
case Calendar.SATURDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/saturday.kml").openStream();
break;
case Calendar.SUNDAY:
inputStream = new URL("http://www.inf.ed.ac.uk/teaching/courses/selp/coursework/sunday.kml").openStream();
break;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
try {
layer = new KmlLayer(mMap, inputStream, getApplicationContext());
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
layer.addLayerToMap();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
我得到的完整错误信息是:
>W/System.err:org.xmlpull.v1.XmlPullParserException:expected:/META-read:HEAD(在java.io中位置:END_-TAG@1:355)。InputStreamReader@426ba9d0)
W/System.err:org.kxml2.io.KXmlParser.readEndTag(KXmlParser.java:970)
W/System.err:org.kxml2.io.KXmlParser.next(KXmlParser.java:372)
W/System.err:org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
W/System.err:com.google.maps.android.kml.KmlParser.parseKml(KmlParser.java:90)
W/System.err:com.google.maps.android.kml.KmlLayer.(KmlLayer.java:49)
W/System.err:at com.example.veronika.grabble.MapsActivity.onMapReady(MapsActivity.java:169)
W/System.err:com.google.android.gms.maps.SupportMapFragment$zza$1.zza(未知来源)
W/System.err:com.google.android.gms.maps.internal.zzt$zza.onTransact(未知来源)
W/System.err:at-android.os.Binder.transact(Binder.java:347)
W/System.err:aai.a(:com.google.android.gms.DynamiteModulesB:82)
W/System.err:at maps.ad.t$5.run(未知源)
W/System.err:at-android.os.Handler.handleCallback(Handler.java:730)
W/System.err:at-android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err:at-android.os.Looper.loop(Looper.java:213)
W/System.err:at-android.app.ActivityThread.main(ActivityThread.java:5225)
W/System.err:at java.lang.reflect.Method.invokenactive(本机方法)
W/System.err:at java.lang.reflect.Method.invoke(Method.java:525)
W/System.err:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
W/System.err:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
W/System.err:at-dalvik.System.NativeStart.main(本机方法)
D/AndroidRuntime:关闭虚拟机
W/dalvikvm:threadid=1:线程以未捕获异常退出(组=0x420218b0)
E/AndroidRuntime:致命异常:主
java.lang.NullPointerException
在com.example.veronika.grabble.MapsActivity.onMapReady(MapsActivity.java:176)上
在com.google.android.gms.maps.SupportMapFragment$zza$1.zza(未知来源)
位于com.google.android.gms.maps.internal.zzt$zza.onTransact(未知来源)
位于android.os.Binder.transact(Binder.java:347)
在aai.a(:com.google.android.gms.DynamicModuleSB:82)
at maps.ad.t$5.运行(未知来源)
位于android.os.Handler.handleCallback(Handler.java:730)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:213)
位于android.app.ActivityThread.main(ActivityThread.java:5225)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:741)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
在dalvik.system.NativeStart.main(Native Method)
显然您没有得到xml,但是html fx抱歉,这不是编码错误,我在重新启动手机后忘记打开wifi。PS:这些链接是kml文件的,现在可以正常工作了