react-native-amap-location icon indicating copy to clipboard operation
react-native-amap-location copied to clipboard

错误代码:10,info定位服务启动失败

Open zuoliang0 opened this issue 8 years ago • 14 comments

按照你的代码操作的,但是控制台一直输出

errorCode: 10errorInfo: "定位服务启动失败" 请问是key的问题吗?因为key要添加sha1的绑定,这个地方不知道是不是操作错误导致的。 还有 srsettings.gradle 这个文件貌似不存在,我自己建了一个,和这个有关吗 内容

<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />

<application
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <service android:name="com.amap.api.location.APSService"></service>
      <meta-data
         android:name="com.amap.api.v2.apikey"
         android:value="key"/>

zuoliang0 avatar Aug 19 '16 01:08 zuoliang0

@178620086 已经成功调用sdk了应该和gradle文件没关系。 你看看 会不会再次打开就好了 或者换个手机测试一下 相关讨论:http://lbsbbs.amap.com/forum.php?mod=viewthread&tid=12379

tyao1 avatar Aug 19 '16 03:08 tyao1

没用,重启了手机,电脑,依旧

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

accuracy 设置为BatterySaving呢

tyao1 avatar Aug 19 '16 03:08 tyao1

 componentDidMount() {
  this.listener = AMapLocation.addEventListener((data) => console.log('data', data));
  AMapLocation.startLocation({
    accuracy: 'BatterySaving',
    killProcess: true,
    needDetail: true,
  });
}

这样吗?我去试试,这个不用重新安装吧?

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

 componentDidMount() {
  this.listener = AMapLocation.addEventListener((data) => console.log('data', data));
  AMapLocation.startLocation({
    accuracy: 'BatterySaving',
    killProcess: true,
    needDetail: true,
  });
}

这样吗?我去试试,这个不用重新安装吧?

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

@178620086 我发现我readme写错了 ,最后修改的文件是AndroidManifest.xml

tyao1 avatar Aug 19 '16 03:08 tyao1

天~~~你这坑了不少人吧。。等你改好

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

是不是这个文件?

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

@178620086 天了噜 我刚发现 对就是它

tyao1 avatar Aug 19 '16 03:08 tyao1

好吧,麻烦你把readme上的改正确下,我自己先搞一搞试试

zuoliang0 avatar Aug 19 '16 03:08 zuoliang0

好了我的已经正确了,现在提示key错误

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.awesomeproject"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />

    <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <service android:name="com.amap.api.location.APSService"></service>
      <meta-data
         android:name="com.amap.api.v2.apikey"
         android:value=" 改我"/>
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

zuoliang0 avatar Aug 19 '16 04:08 zuoliang0

@178620086 Readme已经改了 就是之前的文件路径错了。key错误我就不知道了,你先看看key填写的正不正确,不行的话这个你得上官方文档或者论坛上找找为啥不对。

tyao1 avatar Aug 19 '16 04:08 tyao1

恩,我知道了,我的sha1是通过类似md5的工具生成的,不是官方要的那种 68:A2:FE:62:DC:FE:2B:36:D1:5D:81:C3:DE:BF:50:6F:07:E8:~~这种 ok终于整明白了,android程序在默认情况下是使用用户目录下的.android目录下的debug.keystore来签名的所以,在高德地图的“调试版安全码SHA1”中就填入这个的sha1就可以了。

签名的方法google下可以弄好。

但是新的问题是,这个sdk只能定位吗?

我想显示地图控件啊亲?

zuoliang0 avatar Aug 19 '16 04:08 zuoliang0

@178620086 对 这个只是定位 “高德安卓定位SDK”

tyao1 avatar Aug 20 '16 07:08 tyao1