Google Android 的地图 - 折线应用程序崩溃

Google Maps for Android - Polyline crashing app

我正在从 .jsons 文件导入 geoJSON 数据。它适用于某些文件,但不适用于其他文件。我以为我的文件有问题,但我在 geojson lint as well as 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) and build.gradle(app)

欢迎任何想法

您可能无法在 gradle 文件中添加依赖项。这是一个简短的例子: dependencies { compile 'com.google.android.gms:play-services:8.4.0' } 但这只是我的假设。也许您也无法在您的应用程序中获得 google 服务。如果你能分享更多的代码,我可以帮助你更多。

问题是 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'