報錯代碼如下
Feature addedFeature = mFeatureLayerTrack.getFeatureTable().createFeature(); addedFeature.setGeometry(polyline); //獲取要素屬性結構
Map<String, Object> attrs = addedFeature.getAttributes();
attrs.put("RecordTime", new Date());//記錄當前時間:在這裏出錯
報錯信息如下:
03-26 15:51:44.983 27424-27424/com..E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.., PID: 27424
java.lang.UnsupportedOperationException: Conversion to CoreElement not implemented: class java.util.Date
at com.esri.arcgisruntime.internal.n.g.a(SourceFile:528)
at com.esri.arcgisruntime.internal.n.k$b.a(SourceFile:452)
at com.esri.arcgisruntime.internal.n.k$b.add(SourceFile:399)
at com.esri.arcgisruntime.internal.n.g.a(SourceFile:762)
at com.esri.arcgisruntime.data.FeatureTable.createFeature(SourceFile:535)
at com.esri.arcgisruntime.internal.g.b$1.run(SourceFile:57)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6393)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
跟進源碼:
public static <E> CoreElement a(E var0) {
CoreElement var1 = a.a(var0);
if(var1 != null) {
return var1;
} else {
if(var0 instanceof Attachment) {
var1 = a((Attachment)var0);
} else if(var0 instanceof Layer) {
var1 = a((Layer)var0);
} else if(var0 instanceof Short) {
var1 = a((Short)var0);
} else if(var0 instanceof Integer) {
var1 = a((Integer)var0);
} else if(var0 instanceof Long) {
var1 = a((Long)var0);
} else if(var0 instanceof Float) {
var1 = a((Float)var0);
} else if(var0 instanceof Double) {
var1 = a((Double)var0);
} else if(var0 instanceof String) {
var1 = a((String)var0);
} else if(var0 instanceof Bookmark) {
var1 = a((Bookmark)var0);
} else if(var0 instanceof ClassBreak) {
var1 = a((ClassBreak)var0);
} else if(var0 instanceof Geometry) {
var1 = a((Geometry)var0);
} else if(var0 instanceof LevelOfDetail) {
var1 = a((LevelOfDetail)var0);
} else if(var0 instanceof OrderBy) {
var1 = a((OrderBy)var0);
} else if(var0 instanceof Calendar) {
var1 = a((Calendar)var0);
} else if(var0 instanceof Boolean) {
var1 = a((Boolean)var0);
} else if(var0 instanceof Graphic) {
var1 = a((Graphic)var0);
} else if(var0 instanceof GraphicsOverlay) {
var1 = a((GraphicsOverlay)var0);
} else if(var0 instanceof UniqueValue) {
var1 = a((UniqueValue)var0);
} else if(var0 instanceof Feature) {
var1 = a((Feature)var0);
} else if(var0 instanceof Stop) {
var1 = f.a((Stop)var0);
} else if(var0 instanceof Facility) {
var1 = f.a((Facility)var0);
} else if(var0 instanceof Incident) {
var1 = f.a((Incident)var0);
} else if(var0 instanceof ServiceAreaFacility) {
var1 = f.a((ServiceAreaFacility)var0);
} else if(var0 instanceof PointBarrier) {
var1 = f.a((PointBarrier)var0);
} else if(var0 instanceof PolylineBarrier) {
var1 = f.a((PolylineBarrier)var0);
} else if(var0 instanceof PolygonBarrier) {
var1 = f.a((PolygonBarrier)var0);
} else if(var0 instanceof PopupField) {
var1 = a((PopupField)var0);
} else if(var0 instanceof PopupMedia) {
var1 = a((PopupMedia)var0);
} else if(var0 instanceof PopupRelatedFeaturesSortOrder) {
var1 = a((PopupRelatedFeaturesSortOrder)var0);
} else if(var0 instanceof Symbol) {
var1 = a((Symbol)var0);
} else if(var0 instanceof GenerateLayerOption) {
var1 = a((GenerateLayerOption)var0);
} else if(var0 instanceof SyncLayerOption) {
var1 = a((SyncLayerOption)var0);
} else if(var0 instanceof Map) {
var1 = CoreElement.a(a((Map)var0, String.class, Object.class));
} else if(var0 instanceof AttributeParameterValue) {
var1 = a((AttributeParameterValue)var0);
} else if(var0 instanceof GeoprocessingParameter) {
var1 = a((GeoprocessingParameter)var0);
} else if(var0 instanceof Field) {
var1 = a((Field)var0);
} else if(var0 instanceof FeatureCollectionTable) {
var1 = a((FeatureCollectionTable)var0);
} else if(var0 instanceof FeatureQueryResult) {
var1 = a((FeatureQueryResult)var0);
} else if(var0 instanceof GeoprocessingFeatureSet) {
var1 = a((GeoprocessingFeatureSet)var0);
} else if(var0 instanceof Range) {
var1 = a((Range)var0);
} else if(var0 instanceof ElevationSource) {
var1 = a((ElevationSource)var0);
} else if(var0 instanceof ArcGISSublayer) {
var1 = a((ArcGISSublayer)var0);
} else if(var0 instanceof ArcGISFeatureTable) {
var1 = a((ArcGISFeatureTable)var0);
} else if(var0 instanceof LabelDefinition) {
var1 = a((LabelDefinition)var0);
} else {
if(var0 != null) {
throw new UnsupportedOperationException("Conversion to CoreElement not implemented: " + var0.getClass());
}
var1 = new CoreElement();
}
return var1;
}
}
從此可以看出是對傳入的map參數進行類型判斷,其中並沒有Date類型,所以發生異常。列出的所有日期類型只有
Calendar
所以將日期類型用Calendar
Feature addedFeature = mFeatureLayerTrack.getFeatureTable().createFeature(); addedFeature.setGeometry(polyline); //獲取要素屬性結構
Map<String, Object> attrs = addedFeature.getAttributes();
Calendar calendar =Calendar.getInstance();
attrs.put("RecordTime", calendar);//此處修改
問題解決!