上个月的地理编码器每次因"grpc失败"错误而开始失败,我似乎无法解决它.我看过java.io.IOException:grpc失败但它并没有真正解决问题.
例如代码
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
addresses = geocoder.getFromLocation(lat, lng, 1); // Here if fails with "grpc failed"
Run Code Online (Sandbox Code Playgroud)
我已经使用了相同的代码多年,但最近它在我重新编译应用程序并在模拟器或真实设备上进行测试时已停止工作.
如果我针对SDK 25进行编译,使用构建工具25,它可以在具有SDK 25的模拟器上运行.但是如果我尝试使用SDK 24,26或任何其他SDK版本的模拟器,它将失败并显示"grpc failed".我试图创建一个新的虚拟设备等,但同样的问题.
我不知道如何解决它以及问题是什么.
当前设置:targetSDK/compileSDK 25,构建工具25.0.3,Android Studio 2.3.3,常规模拟器.(我尝试过其他构建工具和SDK版本,但问题仍然存在)
有任何想法吗?
我正在编写一个需要获取当前地图位置的应用.我的Map文件可以正常工作,但是我需要addressString
从另一个获取地址(见下面的buttom)Activity
.我试过getAddress
/ setAddress
(setters/getters).它们不起作用.他们总是返回'无地址'(默认值).
这是我的代码......
我怎样才能使它成为一个独立的Java类?或者从其他活动中获取地址?
非常感谢.
此代码单独工作.
垫
import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
public class GetMapAddress extends MapActivity {
MapController mapController;
MyPositionOverlay positionOverlay;
MapController mc;
GeoPoint p;
String addressString = "No address found";
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.map);
MapView myMapView = (MapView) findViewById(R.id.myMapView);
mapController = myMapView.getController();
// Configure the map display options …
Run Code Online (Sandbox Code Playgroud) 尝试使用地理编码器从经纬度获取位置时出现此错误。
错误
由 java.io.IOException 引起:grpc 在 com.example.myApp.test.Fragments.DashboardFragment$sendLocationData$1.onSuccess(DashboardFragment.kt:676) 处的 android.location.Geocoder.getFromLocation(Geocoder.java:136) 处失败com.example.myApp.test.Fragments.DashboardFragment$sendLocationData$1.onSuccess(DashboardFragment.kt:81) 在 com.google.android.gms.tasks.zzj.run(未知来源) 在 android.os.Handler.handleCallback( Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6776) )在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:1386)
代码
punch_button?.setOnClickListener {
createLocationRequest()
}
protected fun createLocationRequest() {
mLocationRequest = LocationRequest()
mLocationRequest?.interval = 10
mLocationRequest?.fastestInterval = 50
mLocationRequest?.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
val builder = LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest!!)
mLocationCallback = object : LocationCallback() {
override fun onLocationResult(p0: LocationResult?) {
super.onLocationResult(p0)
mCurrentLocation = p0?.lastLocation
}
}
val client = LocationServices.getSettingsClient(context)
val task = client.checkLocationSettings(builder.build())
task.addOnSuccessListener(OnSuccessListener<LocationSettingsResponse> …
Run Code Online (Sandbox Code Playgroud)