2016-05-25 18 views
1

私が最後に知っている場所を取得して、addMarkerを呼び出して呼び出すことができません。私のエラースタックでは、適切なAPIが要求されていないと言われています。それは私はちょうどここに重要な部分を大きなプログラムを入れているだ:最後の場所を取得すると場所が返されません

から呼び出され
public LatLng getLastKnownLocation() { 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
    } 
    Location lastLocation = FusedLocationApi.getLastLocation(client); 
    return new LatLng(lastLocation.getLatitude(),lastLocation.getLongitude()); 

} 

mMap.addMarker(newMarkerOptions().position(getLastKnownLocation()).title(memoryString)); 

そして、私のエラー:

23126-23126/com.example.kevin.memories E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.kevin.memories, PID: 23126 java.lang.NullPointerException: Appropriate Api was not requested. at com.google.android.gms.common.internal.zzaa.zzb(Unknown Source) at com.google.android.gms.internal.zzof.zza(Unknown Source) at com.google.android.gms.location.LocationServices.zzi(Unknown Source) at com.google.android.gms.location.internal.zzd.getLastLocation(Unknown Source) at com.example.kevin.memories.MapsActivity.getLastKnownLocation(MapsActivity.java:134) at com.example.kevin.memories.MapsActivity.onMapReady(MapsActivity.java:107) at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source) at com.google.android.gms.maps.internal.zzo$zza.onTransact(Unknown Source) at android.os.Binder.transact(Binder.java:380) at wv.a(:com.google.android.gms.DynamiteModulesB:82) at maps.ag.t$5.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5835) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 23126-23745/com.example.kevin.memories E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.googlecertificates.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.example.kevin.memories-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

私は何かが足りないのですか?

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.login_toolbar); 
    toolbar.setTitle("Login"); 

    if (client == null) { 
     GoogleApiClient client = new GoogleApiClient.Builder(this) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .addApi(LocationServices.API) 
       .build(); 
     loginButtons(); 
    } 
    loadMap(); 
} 
+0

マニフェストXMLファイルに必要な権限をすべて追加しましたか? – Kajal

+0

はい私は@ kv.333を持っています – kevinb

+0

私は投稿を更新し、それを解決しました。 GoogleApiClientが不明な理由でnullを返すことは間違いない – kevinb

答えて

0

私はGoogleApiClientはnullを返すされていない私の場合は、同じログ・エラーhereを取得しています。私は最後の場所がnullでないことに問題はありません。私は乾杯してこれを確認した。私が持っている唯一の問題は、マーカーを表示するコードが決して呼び出されないことです。あなたのクライアントがまだnullを返している場合、私のimplementaionを見てください。 最後の場所を取得します。ログエラー自体の解はdowngrading 9.0.83 Google Play Servicesです。