2017-08-05 12 views
10

ジオコーダーの先月、 "grpc failed"エラーが発生したたびに失敗し始めましたが、私はそれを解決できないようです。私はjava.io.IOException: grpc failedを見ましたが、実際に問題を解決しませんでした。ジオコーダーgrpcが失敗しました

はexampelコード

Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
addresses = geocoder.getFromLocation(lat, lng, 1); // Here if fails with "grpc failed" 

のために私は何年も同じコードを持っていたが、それはちょうど最近それが、私はエミュレータまたは実際のデバイス上のアプリとテストを再コンパイルする際に動作を停止しましたです。

ビルドツール25を使用してビルドツール25を使用してコンパイルすると、SDK 25のエミュレータで動作します。ただし、SDK 24,26または他のSDKバージョンのエミュレータで試しても、 "grpc failed" 。私は新しい仮想デバイスなどを作成しようとしましたが、同じ問題です。

私はそれを修正する方法と問題が何かを持っていません。

現在のセットアップ:targetSDK/compileSDK 25、ビルドツール25.0.3、Android Studio 2.3.3、regular emulator。 (私は他のビルドツールやSDKのバージョンを試しましたが、まだ問題は残ります)

アイデアはありますか?

+0

の可能性のある重複した[にjava.io.IOException:grpcに失敗しました]( https://stackoverflow.com/questions/45012289/java-io-ioexception-grpc-failed) –

+0

@SimonRolinいいえ、受け入れられた回答とその下のコメントを参照してください。 –

答えて

1

このURLオプションを持つIntentServiceを使用している場合は、別のプロセスで作成することができますが、常にAsynctaskなどを使用できますが、メインスレッドでGeocoderを使用しようとしている可能性があります。

+0

私はAsyncTaskを使用しており、デバイス上で完全に動作します。エミュレータでは、一貫性がないにもかかわらず、IOExceptionエラーメッセージでランダムに失敗します。たとえば、エミュレータでは3/5回、デバイスでは5/5回しか動作しませんでした。私の場合は、間違いなくエミュレータの問題のようです。 – Ewald

0

仮想デバイスのGoogle Playサービスに関連しています。 解決策としてAPI25とバージョン7.1.1を使用してください。

ここに例を示します。

私はGenymotionとGoogleでを試しサービスは、仮想デバイス上の無効になっている再生は(エラー:サービス利用可能ではない):

10-07 07:13:30.023 3481-3481/com.unalfaruk.mapexample I/System.out: Your Location: 65.96992333333333 -18.540028333333332 
10-07 07:13:30.023 3481-3481/com.unalfaruk.mapexample W/System.err: java.io.IOException: Service not Available 
10-07 07:13:30.024 3481-3481/com.unalfaruk.mapexample W/System.err:  at android.location.Geocoder.getFromLocation(Geocoder.java:136) 
10-07 07:13:30.024 3481-3481/com.unalfaruk.mapexample W/System.err:  at com.unalfaruk.mapexample.MapsActivity$1.onLocationChanged(MapsActivity.java:71) 
10-07 07:13:30.024 3481-3481/com.unalfaruk.mapexample W/System.err:  at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:297) 

enter image description here

私はサービスを再生GenymotionとGoogleでを試してみてくださいは有効です(エラー:grpcが失敗しました):

10-07 07:18:56.325 2694-2694/com.unalfaruk.mapexample I/System.out: Your Location: 65.96669666666666 -15.0 
10-07 07:18:57.670 2694-2694/com.unalfaruk.mapexample W/System.err: java.io.IOException: grpc failed 
10-07 07:18:57.670 2694-2694/com.unalfaruk.mapexample W/System.err:  at android.location.Geocoder.getFromLocation(Geocoder.java:136) 
10-07 07:18:57.670 2694-2694/com.unalfaruk.mapexample W/System.err:  at com.unalfaruk.mapexample.MapsActivity$1.onLocationChanged(MapsActivity.java:71) 
10-07 07:18:57.670 2694-2694/com.unalfaruk.mapexample W/System.err:  at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:297) 

enter image description here

私はAVD Managerでを試してみて、Googleがサービスを再生(エラーなし)が有効になっているに:

10-07 14:20:14.769 3159-3159/com.unalfaruk.mapexample I/System.out: Your Location: 37.421998333333335 -122.08400000000002 
10-07 14:20:15.220 3159-3159/com.unalfaruk.mapexample I/System.out: Your Adress: Address[addressLines=[0:"1600 Amphitheatre Parkway",1:"Mountain View, CA 94043",2:"USA"],feature=1600,admin=California,sub-admin=null,locality=Mountain View,thoroughfare=Amphitheatre Parkway,postalCode=94043,countryCode=US,countryName=United States,hasLatitude=true,latitude=37.422329,hasLongitude=true,longitude=-122.0843055,phone=null,url=null,extras=null] 

enter image description here

関連する問題