首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android espresso测试失败,返回UnknownServiceException: CLEARTEXT

这个错误是由于Android应用程序在使用网络请求时,请求的URL使用了不安全的明文传输协议(如HTTP),而当前的Android版本默认禁止了明文传输。为了解决这个问题,可以采取以下几个步骤:

  1. 使用HTTPS协议:将应用程序中的网络请求URL改为使用HTTPS协议,这样可以保证数据传输的安全性。HTTPS使用了SSL/TLS协议对数据进行加密和认证,防止数据被窃取或篡改。
  2. 配置网络安全策略:在应用程序的清单文件(AndroidManifest.xml)中,可以配置网络安全策略,允许使用明文传输协议。可以通过在<application>标签下添加以下代码来实现:
代码语言:txt
复制
<application
    ...
    android:usesCleartextTraffic="true"
    ...>
    ...
</application>

这样配置后,应用程序就可以使用明文传输协议进行网络请求了。但需要注意的是,明文传输协议存在安全风险,建议仅在开发和测试阶段使用,正式发布时应使用HTTPS协议。

  1. 使用网络安全配置文件:在Android 9及以上的版本中,可以使用网络安全配置文件(network_security_config.xml)来配置网络安全策略。在res目录下创建一个名为xml的文件夹,并在该文件夹下创建network_security_config.xml文件,内容如下:
代码语言:txt
复制
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

然后,在清单文件的<application>标签中添加以下代码:

代码语言:txt
复制
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
    ...
</application>

这样配置后,应用程序也可以使用明文传输协议进行网络请求。

推荐的腾讯云相关产品:腾讯云SSL证书服务。腾讯云SSL证书服务提供了各种类型的SSL证书,包括DV SSL证书、OV SSL证书和EV SSL证书,可以为网站和应用程序提供安全的HTTPS加密连接。详情请参考腾讯云SSL证书服务官方介绍:腾讯云SSL证书服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 当 Espresso 遇见 Android 单元测试

    作者:施亮 团队:腾讯移动品质中心TMQ 引言 在Android单元测试中,不依赖Android环境的可以使用Junit。...如果依赖Android环境,但是没有UI相关或者UI比较简单(如点击按钮)的单元测试可以使用开源库Robolectric解决依赖问题,使测试运行在JVM上,而非模拟器上,大大提高测试运行效率。...Activity& Espresso Activity是承载UI控件的Android基本组件,Espresso则是可操作Activity的Google原生UI自动化框架。...工程中使用Espresso实现自动化测试只需要三步: 1、添加依赖: androidTestCompile 'com.android.support.test.espresso:espresso-core...因为Android更改UI只能在UI线程中进行,所以改变控件属性的代码只能写在Activity的代码中,而不是Espresso的测试代码中。

    2.5K10

    Android P 第二个测试版本请求网络 CLEARTEXT communication to host not permitted by network

    问题: 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。...如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。...为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to " + host +...Platform.get().isCleartextTrafficPermitted(host)) { throw new RouteException(new UnknownServiceException...( "CLEARTEXT communication to " + host + " not permitted by network security policy"));

    23630

    在Android P上使用Http

    : java.io.IOException: Cleartext HTTP traffic to **** not permitted //使用OkHttp时遇到的异常 java.net.UnknownServiceException...: CLEARTEXT communication ** not permitted by network security policy 这是由于我们所使用的接口并非https导致的: Google...表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行...Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo...android:networkSecurityConfig="@xml/network_security_config" ... /> 参考链接

    2.1K20

    Gradle For Android(6)--测试单元

    如果单元测试失败了,那么Gradle就会在命令行打印出来失败日志。如果成功了,那么Gradle会打印出来BUILD SUCCESSFUL的日志。 如果某个test任务失败了,整个过程会立刻终止。...这个Report可以帮助我们查看哪儿失败了,并且对于自动化测试非常有用。Gradle会为每一个Build Variant执行测试任务构建一个Report。...例如,你可以创建一个功能性的测试:点击一个Button打开一个新的Activity。Android提供了一些功能性测试的框架,但是最简单的还是使用Espresso框架。...Espresso Espresso Library通过Android Support仓库提供。所以可以通过SDK Manager安装。为了在设备上进行测试,我们需要定义一个test runner。...'com.android.support.test.espresso:espresso-core:2.2' androidTestCompile 'com.android.support.test.espresso

    1.7K40

    Android 单元测试和 UI 测试初步实践

    通常大型项目都是通过黑盒测试等方式来提供质量相关的保障,但同时笔者认为也需要 Android 端的单元测试以及能自动在 Android 平台上运行的 UI 测试,这几种测试有以下几个优势: 更早发现代码中存在的...Android 测试代码位置 在 Android Studio 中新建新的项目时,它已自动为两种测试类型创建了对应的代码目录: 单元测试用例:位于 module-name/src/test/java 目录下...至此,一个 Android 的单元测试用例编写完成。通过 Android Studio 直接运行此单元测试用例,结果如下: ?...,由于这里是需要 Android 环境且使用到 Espresso 框架,所以 @RunWith 选择 AndroidJUnit4 类。...至此,一个 Android 的 UI 测试用例编写完成。通过 Android Studio 直接运行此用例,结果如下: ?

    2.1K10

    Android 9.0适配及部分新特性介绍

    4//在App.java中加入即可: 5Reflection.unseal(this); 1.3.2、http网络请求的问题 在我们项目中,使用OKHttp请求会出现如下异常: 1java.net.UnknownServiceException...: CLEARTEXT communication ** not permitted by network security policy 也就是说,当API级别为28及以上时,应用使用的如果是非加密的明文流量的...1、绑定公积金,选择城市时,页面会崩溃 2、环境切换功能,点击测试入口时,页面会崩溃 3、需支持支付宝h5支付 4、偶现人脸识别不成功,反复进入活体认证页面 针对问题一和二:我测试了下Android9.0...针对问题四,由于是偶现,且也没有任何明确的报错日志,需要多个真机进行多次测试。...getSafeInsetRight () 返回安全区域距离屏幕右边的距离,单位是px。 getSafeInsetTop () 返回安全区域距离屏幕顶部的距离,单位是px。

    3.4K40

    推荐7个最强Appium替代工具,移动App自动化测试必备!

    Robotium特别适合需要进行复杂用户交互和跨活动测试的Android应用。...6、Espresso Espresso 是由 Google 开发的一款专门用于 Android 应用自动化测试的框架。...它具有以下特点: Espresso 提供了简洁且易于使用的 API,测试人员可以快速编写测试用例。...强大的同步机制,Espresso 内置了强大的同步机制,能够自动等待应用的 UI 元素处于可交互状态后再执行操作,大大减少了因异步加载导致的测试失败。...适用场景:适用于 Android 应用的功能测试和 UI 测试,尤其在开发团队对 Android 开发环境熟悉且追求高效测试编写和执行的情况下,Espresso 是一个绝佳的选择。

    18610
    领券