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