Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未处理的异常:错误状态:平台不允许不安全的HTTP-usesClearTextTraffic未工作_Android_Flutter - Fatal编程技术网

Android 未处理的异常:错误状态:平台不允许不安全的HTTP-usesClearTextTraffic未工作

Android 未处理的异常:错误状态:平台不允许不安全的HTTP-usesClearTextTraffic未工作,android,flutter,Android,Flutter,我试图使用PHP和MySQL数据库在Flatter中运行一个基本API调用,但收到一个错误,错误如下: E/flatter(7461):[错误:flatter/lib/ui/ui\u dart\u state.cc(186)]未处理的异常:错误状态:平台不允许不安全的HTTP 我尝试过的 我尝试过这里提出的解决方案: 在这里: 示例代码 霍姆·达特 import 'package:flutter/material.dart'; import 'package:flutter_crud/env.s

我试图使用PHP和MySQL数据库在Flatter中运行一个基本API调用,但收到一个错误,错误如下:

E/flatter(7461):[错误:flatter/lib/ui/ui\u dart\u state.cc(186)]未处理的异常:错误状态:平台不允许不安全的HTTP

我尝试过的

我尝试过这里提出的解决方案:

在这里:

示例代码

霍姆·达特

import 'package:flutter/material.dart';
import 'package:flutter_crud/env.sample.dart';
import 'dart:convert';
import 'package:http/http.dart';

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {

  void getData() async{
    Response response = await get(Uri.parse("${Env.URL_PREFIX}/list"));
    Map data = jsonDecode(response.body);
    print(data);
  }

  @override
  void initState() {
    super.initState();
    getData();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Flutter CRUD API'),
          centerTitle: true,
        ),
        body:Center(
          child: Text('Hello'),
        )
    );
  }
}
在debug/AndroidManifest.xml中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jacobcollinsdev.flutter_crud">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application android:usesCleartextTraffic="true"/>
</manifest>

在主/AndroidManifest.xml文件中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jacobcollinsdev.flutter_crud">
    <uses-permission android:name="android.permission.INTERNET" /> <------- I added this line
    <application
        android:label="flutter_crud"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"> <------ I added this line
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <uses-library 
            android:name="org.apache.http.legacy"
            android:required="false" /> <-------I added this code block
    </application>
</manifest>


只需将这些行插入
android/app/src/main/AndroidManifest.xml

1) 。添加
应用程序之前
标记

2) 。在应用程序中添加
android:usesCleartextTraffic=“true”
标签


您应该尝试从SSL证书域加载映像。即使用
HTTPS
而不是
HTTP


因此,对于您的情况,请将“http://[my.IP.address.here]/flatter\u crud”
替换为使用
https://

更新:我也尝试过运行
flatter clean
,但没有成功。您解决了吗?@abed不,不幸的是没有!
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jacobcollinsdev.flutter_crud">
    <uses-permission android:name="android.permission.INTERNET" /> <------- I added this line
    <application
        android:label="flutter_crud"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"> <------ I added this line
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <uses-library 
            android:name="org.apache.http.legacy"
            android:required="false" /> <-------I added this code block
    </application>
</manifest>

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config clearTextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>