UnityWebRequest Android端請求時 Unknown Error

用UnityWebRequest發送請求時,用編輯器發送正常,打出Android包再請求就報出UnknownError,查了下是因爲Android 28以後不允許直接發送明文,網上查了下有幾種解決方案,這裏記錄一下:

Android本機API確實允許HTTP,至少可以使用curl庫。但是,Java API(這是UnityWebRequest當前在幕後使用的)不允許HTTP
解決辦法:

1、需要在清單文件中更新此行android:usesCleartextTraffic =“ true”

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal">
    <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
    <application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:usesCleartextTraffic="true">
        <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

2、通過將目標API級別更改爲27,可以繞過此問題
在這裏插入圖片描述
3、切換到HTTPS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章