qiuxiang / react-native-amap-geolocation

React Native geolocation module for Android + iOS
https://qiuxiang.github.io/react-native-amap-geolocation
MIT License
389 stars 103 forks source link

android7中出现 getLastKnownLocation() on a null object #12

Closed 25juan closed 6 years ago

25juan commented 6 years ago

开发环境: RN : 0.53.3 测试环境 Android5(魅族) & Android7(华为荣耀6x)

作者你好,在使用该库中发现了两个问题,已下问题均出现在Android7 中,Android5 尚未发现问题,一切正常。 问题1:

Attempt to invoke virtual method ' com.amap.api.location.AMapLocation com.amap.api.location.AMapLocationClient.getLastKonwnLocation()  on a null object reference'

screenshot_20180627-161550

问题2: 在使用定位当中,获取的数据里面只有经纬度,没有具体的详细地址。 最后感谢作者提供的定位库

qiuxiang commented 6 years ago

正在用的 react-native-amap-geolocation 的版本是多少?

25juan commented 6 years ago

0.3.1

25juan commented 6 years ago

下面是我的代码:

const amap = async ()=>{
    await Geolocation.init({
        ios: "appkey",
        android: "appkey"
    });
    Geolocation.setOptions({
        interval: 0,
        distanceFilter: 2000
    });
    Geolocation.start() ;
    console.log(await Geolocation.getLastLocation()); // 此处 android7 输出为null,android5输出为真实数据

} ;
qiuxiang commented 6 years ago

我看了下对应的代码,如果你确保在 init() 之后调用 getLastLocation() 怎么可能会出现 error;另外 getLastLocation 本来就有可能返回 null,这依赖于上次的定位。

没有详细地址基本是因为 key,这需要你自己检查 logcat。

25juan commented 6 years ago

确实是我key 没对,但是好像没有key 也能获取上一次的定位,该问题已解决。所以关闭

qiuxiang commented 6 years ago

没有 key 本来就可以获取定位,只是不能查询逆地理编码

25juan commented 6 years ago

可能是我换了OS,导致keystore生成的hash值变了。所以最开始就是正常的,后面就一直报错。getLastLocation 这个返回了正常数据导致我误以为Android5 是正常的。感谢作者的帮助