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