主要是关于...\flutter\.pub-cache\hosted\pub.flutter-io.cn\amap_base-0.3.5\android\src\main\kotlin\me\yohom\amapbase\m\apMapHandler.kt的报错
需要修改它的源码:
object OpenOfflineManager : MapMethodHandler {
override fun with(map: AMap): MapMethodHandler {
return this
}
override fun onMethodCall(methodCall: MethodCall, methodResult: MethodChannel.Result){
}
/*override fun onMethodCall(p0: MethodCall?, p1: MethodChannel.Result?) {
AMapBasePlugin.registrar.activity().startActivity(
Intent(AMapBasePlugin.registrar.activity(),
OfflineMapActivity::class.java)
)
}*/
}
还有...flutter\.pub-cache\hosted\pub.flutter-io.cn\amap_base-0.3.5\android\src\main\kotlin\me\yohom\amapbase\search\SearchHandlers.kt
也是需要修改源码:
object DistanceSearchHandler : SearchMethodHandler {
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
/* val search = DistanceSearch(AMapBasePlugin.registrar.context())
search.setDistanceSearchListener {
distanceResult, i -> search.setDistanceSearchListener(null)
if (i == 1000) {
val list = distanceResult.distanceResults.map {
it.distance.toInt()
}
result?.success(list)
} else {
result?.error("测量失败 code ==> $i", null, null)
}
}
val origins = call.argument<List<Map<String, Any>>>("origin")!!
val target = call.argument<Map<String, Any>>("target")!!
val type = call.argument<Int>("type")!!
search.calculateRouteDistanceAsyn(DistanceSearch.DistanceQuery().apply {
this.origins = origins.map {
it.toLatlng().toLatLonPoint()
}.toMutableList()
this.destination = target.toLatlng().toLatLonPoint()
this.type = type
})*/
}
fun Map<String, Any>.toLatlng(): LatLng {
val lat = this["latitude"] as Double
val lng = this["longitude"] as Double
return LatLng(lat, lng)
}
}