适用于Android的谷歌地图 - 折线崩溃应用程序

时间:2016-03-14 16:46:26

标签: java android json google-maps geojson

我正在从.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)

欢迎任何想法

2 个答案:

答案 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' } 但这只是我的假设。也许你没有在你的应用程序中获得谷歌服务。如果您可以分享更多代码,我可以为您提供更多帮助。

相关问题