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中Android API 28之后无法HTTP请求相关推荐
- unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求
本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复log获取最新版运行时查看日志的工具. 小新:"最近我升级到Android AP ...
- Unity 打包 Android API 26
因为GooglePlay强制要求上传APK API level 最低要求26 ,我在网上找不到解决方案 特记录一下解决步骤 Google官方解答原文地址:https://commondatastora ...
- SiKi学院 Unity中常用api学习笔记(001-014)
Api 应用程序编程接口 前言 笔记是看siki学院中<Unity中常用api>的学习笔记 课程地址: http://www.sikiedu.com/my/course/59 强烈推荐大 ...
- SiKi学院 Unity中常用api学习笔记(015-019)
Api 应用程序编程接口 前言 笔记是看siki学院中<Unity中常用api>的学习笔记 课程地址: http://www.sikiedu.com/my/course/59 强烈推荐大 ...
- Unity中GameObject API解析
如何在脚本中获取自身所在的GameObject? 我们知道脚本必须挂在一个GameObject上面才能执行,那么如何知道当前脚本所挂载的GameObject是哪一个呢? 这就需要用到gameObjec ...
- audio unity 加速_浅谈Unity中Android、iOS音频延迟
在Unity上面做音游,当在移动端实机运行起来,会发现,音频的发出会有一定的延迟,无论是长音效还是短音效,Unity内置的Audio内部使用的是FMOD,有以下手段改善 通过设置稍微改善其延迟的问题 ...
- Unity(十七) 在Unity中Android使用FTP进行上传、下载、文件创建(客户端部分)
参考链接:https://www.cnblogs.com/zhenzaizai/p/7434669.html 感谢原作,并修正判断文件夹是否存在的问题 如何在Win10上创建FTP服务器 :https ...
- Unity--升级Android api level 28踩坑记录
背景:项目使用的Unity版本为5.4.4f1,Android targetSdkVersion为22,接到通知要求targetSdkVersion要升级到28(至少为26) 实践:直接将target ...
- android alpha不起作用,API 28(P)的Android设计支持库不起作用
我已经成功配置了android-P SDK环境.当我尝试使用android设计支持库时,我遇到项目构建错误.项目配置为: IDE:3.2 Canary 17目标API:28编译API:28 apply ...
最新文章
- Go基础编程:延迟调用defer
- 机器人上岗,到了跟美女HR说拜拜的时候了?
- 物联网:发动一场生态系革命
- [Swift]在Swift中实现自增(++)、自减(--)运算符:利用extension扩展Int类
- Linux网络编程之connect创建
- URL 编码是什么?
- smart原则_真正的有效目标--SMART原则
- 开源LitCAD:一个使用C#编写的非常简易的CAD小程序。
- Line3d安装;bundler+pmvs;opencv_contrib
- 建站之星网站 和服务器,建站之星网站 和服务器
- Qt表格分页,跳转,首尾页
- 工控网络安全性测试解决方案
- 上海落户计算机水平毕业研究生,上海落户有多难?985硕士似乎才可能
- 找最大数及下标 指针 c语言,c语言求数组中最大值和最小值及其下标
- 光猫桥接后宽带降速问题解决
- 微型计算机2019年度金奖产品,【MC 2019年度评选获奖产品展播】华硕/ROG DIY精品斩获多个大奖...
- 并发量与qps的区别和联系,以及系统吞吐量的介绍
- termux python3-dev_termux进阶
- RK3326 8.1系统定制化通用修改
- 流水灯循环点亮c语言程序,流水灯来回点亮程序(汇编和C)
热门文章
- android viewflipper图片轮播,android开发:ViewFlipper实现图片轮播
- java pg数据库事务回滚_PG 事务提交与回滚
- java网站短信接口_网云JAVA短信接口API
- oracle io错误的是什么意思,大家帮帮忙,如何解决下面的IO错误问题,急!!!...
- wps合并所有sheet页_别找了,你要的Excel多表合并都在这里了
- 牛年春节与年俗插画素材,年味十足
- 设计灵感|展览海报的设计没有头绪?
- UI完美素材|(Watch展示篇)Mockups动态图提案模板
- UI设计干货模板|首页设计技巧
- javaweb系统oracle锁表,oracle、websphere下获取数据库连接时出现死锁