unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求
本文節(jié)選自洪流學(xué)堂公眾號(hào)技術(shù)專欄《大話Unity2019》,未經(jīng)允許不可轉(zhuǎn)載。
洪流學(xué)堂公眾號(hào)回復(fù)log獲取最新版運(yùn)行時(shí)查看日志的工具。
小新:“最近我升級(jí)到Android API Level 28之后,發(fā)現(xiàn)發(fā)布的安卓包,網(wǎng)絡(luò)請(qǐng)求都不通了,這是咋回事啊?”
大智:“遇到這種問(wèn)題,調(diào)試的時(shí)候首先去看日志,你研究運(yùn)行日志了么?”
小新:“哎呀,我給忘了。不過(guò),在Unity中我知道在Console面板上看日志,已經(jīng)發(fā)布出來(lái)在手機(jī)上運(yùn)行的程序怎么看日志啊?”
大智:“看來(lái)得先學(xué)習(xí)怎么看日志。”
Unity Android查看日志
查看運(yùn)行在Android真機(jī)程序的日志有幾種辦法:
2019.1之后可以直接在Unity編輯器中連接到手機(jī)查看運(yùn)行的日志
使用Android開(kāi)發(fā)者工具的adb logcat
使用Unity的運(yùn)行時(shí)日志查看插件
方法1:2019.1之后可以直接在Unity編輯器中連接到手機(jī)查看運(yùn)行的日志
通過(guò)USB或者局域網(wǎng)連接都可。
方法2:使用Android開(kāi)發(fā)者工具的`adb logcat`
使用命令行工具adb logcat或者使用AndroidStudio對(duì)應(yīng)的工具。
方法3:使用Unity的運(yùn)行時(shí)日志查看插件
有一個(gè)神器,可以在運(yùn)行時(shí)查看Unity的日志,到洪流學(xué)堂公眾號(hào)回復(fù)log獲取最新版吧!
Unity中Android API 28之后無(wú)法HTTP請(qǐng)求
小新:“哎,真的找到問(wèn)題了!錯(cuò)誤提示是這樣的:”
Cleartext?HTTP?traffic?to?xxx?not?permitted大智:“好了,現(xiàn)在有關(guān)鍵詞了,你可以自己求助搜索引擎了吧?”
小新:“嗯嗯,知道調(diào)試的方法太重要啦!”
大智:“找到解決辦法以后,記得給大家分享一下哦。”
問(wèn)題原因
Android系統(tǒng)出于安全性考慮,在Android P系統(tǒng)(Android API >= 28)的設(shè)備上,如果應(yīng)用使用的是非加密的明文流量的http網(wǎng)絡(luò)請(qǐng)求,則會(huì)導(dǎo)致該應(yīng)用無(wú)法進(jìn)行網(wǎng)絡(luò)請(qǐng)求,https則不會(huì)受影響;同樣的,如果應(yīng)用嵌套了webview,webview也只能使用https請(qǐng)求。
解決辦法
解決辦法有幾種:
配置好服務(wù)端的SSL證書(shū),客戶端使用HTTPS請(qǐng)求
API版本使用27及以下的版本
配置客戶端允許不安全的HTTP請(qǐng)求
方法1:配置好服務(wù)端的SSL證書(shū),客戶端使用HTTPS請(qǐng)求
在可信任的證書(shū)廠商申請(qǐng)SSL證書(shū),給服務(wù)端配置。
大智常用的申請(qǐng)證書(shū)的地方:
https://freessl.cn/
方法2:配置Android API為27版本
先在菜單欄:File > Build Settings中切換平臺(tái)為Android,Player Settings中Other Settings中Identification中的Target API Level設(shè)置為27。
方法3:配置客戶端允許不安全的HTTP請(qǐng)求
在Unity工程中的AndroidManifest.xml文件中增加支持明文請(qǐng)求:
android:usesCleartextTraffic="true"創(chuàng)建一個(gè)文件放到Assets/Plugins/Android/AndroidManifest.xml
<?xml ?version="1.0"?encoding="utf-8"?><manifest?xmlns:android="http://schemas.android.com/apk/res/android"package="PACKAGE"android:versionCode="1"android:versionName="1.0">
????<application?android:usesCleartextTraffic="true"?android:label="@string/app_name"?ICON>
????????<activity?android:name="ACTIVITY_ENTRY_NAME"android:label="@string/app_name">
????????????<intent-filter>
????????????????<action?android:name="android.intent.action.MAIN"?/>
????????????????<category?android:name="android.intent.category.LAUNCHER"?/>
????????????intent-filter>
????????activity>
????application>
manifest>
總結(jié)
大智:“解決這種問(wèn)題,首先要從表象找到原因,這個(gè)過(guò)程一般都是從log信息中發(fā)掘線索。”
洪流學(xué)堂公眾號(hào)回復(fù)log獲取最新版運(yùn)行時(shí)查看日志的工具。
推薦閱讀
Unity 2019.1 中文更新日志速覽版
Unity開(kāi)發(fā)《一起來(lái)捉妖》教程 | 1.陀螺儀控制相機(jī)
Unity開(kāi)發(fā)《一起來(lái)捉妖》教程 | 2.用攝像頭圖像做背景
Unity中的HTTP通信
UnityWebRequest詳解
Unity中編碼Encoding脫坑指南
Unity中的Git最佳實(shí)踐
Unity2019更新規(guī)劃速覽,將有官方的可視化編程!
Unity運(yùn)行時(shí)更新帶來(lái)了什么?
Unity2018.3新功能 | Prefab嵌套和變體
洪流學(xué)堂公眾號(hào)回復(fù)log獲取最新版運(yùn)行時(shí)查看日志的工具。
《大話Unity2019》,大智帶小新學(xué)Unity2019的有趣經(jīng)歷,讓你學(xué)Unity更簡(jiǎn)單。
點(diǎn)擊文末右下角“在看”或點(diǎn)擊右上角分享給你學(xué)Unity的朋友,也許能夠幫到他。
總結(jié)
以上是生活随笔為你收集整理的unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 静态路由及浮动静态路由-浮动路由和静态路
- 下一篇: android sina oauth2.