我正在从.jsons文件导入geoJSON数据。它适用于某些文件但不适用于其他文件。我认为我的文件存在问题,但我在geojson lint以及geojson.io上测试了它们没有问题。
这是堆栈:
FATAL EXCEPTION: main
Process: com.example.andrea.blank_test, PID: 8780
java.lang.NoSuchMethodError: No virtual method isClickable()Z in class Lcom/google/android/gms/maps/model/PolylineOptions; or its super classes (declaration of 'com.google.android.gms.maps.model.PolylineOptions' appears in /data/data/com.example.andrea.blank_test/files/instant-run/dex/slice-dependencies_2c16afb1f7a3d667bc9f1bb08f04b953876fdec1-classes.dex)
at com.google.maps.android.geojson.GeoJsonLineStringStyle.toPolylineOptions(GeoJsonLineStringStyle.java:167)
at com.google.maps.android.geojson.GeoJsonRenderer.addLineStringToMap(GeoJsonRenderer.java:297)
at com.google.maps.android.geojson.GeoJsonRenderer.addFeatureToMap(GeoJsonRenderer.java:238)
at com.google.maps.android.geojson.GeoJsonRenderer.addFeature(GeoJsonRenderer.java:166)
at com.google.maps.android.geojson.GeoJsonRenderer.addLayerToMap(GeoJsonRenderer.java:117)
at com.google.maps.android.geojson.GeoJsonLayer.addLayerToMap(GeoJsonLayer.java:112)
这是我非常简单的代码
int d = R.raw.geojson;
try {
GeoJsonLayer layer = new GeoJsonLayer(map, d,
getApplicationContext());
layer.addLayerToMap();
} catch (Exception ex){
Log.e("hey", ex.toString());
}
And here is one of my JSONs causing that bug
build.gradle (project)和build.gradle(app)
欢迎任何想法
答案 0 :(得分:3)
问题是Google Play服务版本8.3.0中的PolylineOptions
实施不包含isClickable()
方法。
它已在版本8.4.0中添加,如果您查看GeoJsonLineStringStyle.java
history on GitHub,您会看到它已在24天前更改以添加折线可点击性。因此,要解决您的问题,您需要更改build.gradle
compile 'com.google.android.gms:play-services:8.3.0'
到
compile 'com.google.android.gms:play-services:8.4.0'
答案 1 :(得分:1)
您可能无法在gradle文件中添加依赖项。这是一个简短的例子:
dependencies {
compile 'com.google.android.gms:play-services:8.4.0'
}
但这只是我的假设。也许你没有在你的应用程序中获得谷歌服务。如果您可以分享更多代码,我可以为您提供更多帮助。