Android模拟器未处理HTTP获取请求,但iOS模拟器可以正常工作



我想做的事情:使用Google Map API获取数据,然后将数据传递到下一个屏幕。

出了什么问题:它在iOS模拟器上正常工作,它设法进入下一个屏幕,并使用数据填充地图(打印位置," yay"," YAY",HTTP状态代码和"loopyays"(。但是在Android模拟器上,它仅打印位置和"是",然后挂在那里,不会导航到下一个屏幕。

出了什么问题?:/请帮助我..

class _LoadingScreenState extends State<LoadingScreen> {
  void getUserLocation() async {
    try {
      Position position = await Geolocator()
          .getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
      print(position);
      Set<Marker> markers = {};
      String url =
          'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${position.latitude},${position.longitude}&maxprice=4&radius=1500&type=restaurant&keyword=cruise&key=AIzaSyDVzxxxxxxxxxxxxxxxxxxx';
      print('yay');
      http.Response data = await http.get(url);
      print(data.statusCode);
      var resultList = jsonDecode(data.body)['results'];
      for (Map i in resultList) {
        var coords = (i['geometry']['location']);
        print('loopyay');
        markers.add(Marker(
            markerId: MarkerId(i['name']),
            position: LatLng(coords['lat'], coords['lng'])));
      }
      Navigator.push(context, MaterialPageRoute(builder: (context) {
        return UserLocationScreen(
          userLocation: position,
          markers: markers,
        );
      }));
    } catch (e) {
      print(e);
    }
  }

我的config

  1. 我在Google控制台上激活了androidmapsdk
  2. 在我的AndroidManifest中,我在
  3. 之后有这个
< meta-data android:name="com.google.android.geo.API_KEY"
                android:value="AIzaSyDVzbjC2hViOnxxxxxxxxxx"/>
  1. 在我的build.gradle
    dependencies {
            classpath 'com.android.tools.build:gradle:3.3.1'
            classpath 'com.google.gms:google-services:4.2.0'
        }
  1. 在我的gradle.properties
    android.enableJetifier=true
    android.useAndroidX=true
    org.gradle.jvmargs=-Xmx1536M

在Android 9 Pie中,默认情况下不允许http请求。

解决方案:请在下面的AndroidManifest.xml文件中更新此信息。

    <application
        ...
        android:usesCleartextTraffic="true">
        ... // Your current code.
    </application>

祝您有美好的一天。

最新更新