java - 获取最后位置不会返回位置

标签 java android location

我无法返回最后的已知位置并调用 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();
}

最佳答案

我收到相同的日志错误 here就我而言,GoogleApiClient 不返回 null。我对获取非空最后位置没有问题。我用干杯验证了这一点。我遇到的唯一问题是标记显示代码从未被调用。如果您的客户仍然返回 null,请查看我的实现。 这是为了获取最后的位置。日志错误本身的解决方案是 downgrading 9.0.83 Google Play Services .

关于java - 获取最后位置不会返回位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446887/

相关文章:

java - 单击“下一步”按钮后复选框未清除

android - 从设备上卸载应用程序后,如何防止 Android Studio 2.0 执行完整的干净构建?

java - 如何在 Android 中为按钮文本添加替代字体?

javascript - 如何设置 Dojo 对话框打开的位置?

java resultset.getstring ("col_name") 查询

java - HashMap字典顺序java如果值相同

java - 有什么方法可以检测窗口在哪个监视器上吗?

android - libgdx 如何集成 admob 插页式 _between_ 游戏屏幕

android - distance To() 返回的距离不是米!

android - 应用程序无法到达附近的地方