首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使android:usesCleartextTraffic=仅对插装测试为“真”?

如何使android:usesCleartextTraffic=仅对插装测试为“真”?
EN

Stack Overflow用户
提问于 2018-12-17 00:59:23
回答 1查看 7.7K关注 0票数 13

我使用RESTMock进行指令插入测试,但只有在清单中将usesCleartextTraffic设置为true时,它才能起作用。不过,我只希望这对于插装测试是正确的。有没有办法做到这一点?

我尝试在androidTest文件夹中创建新的清单文件。测试运行了,但它们失败了,就像usesCleartextTraffic仍然是false一样。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.package">

    <application android:usesCleartextTraffic="true" />

</manifest>

我知道RESTMock从0.3.2版本开始支持https,但我不想去处理它。实际上,我遵循了他们的指导,并最终得到了来自OkHttp3的这个错误:

java.lang.AssertionError: java.security.NoSuchAlgorithmException: The BC provider no longer provides an implementation for KeyPairGenerator.RSA. Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.

有什么想法吗?

编辑:

我遵循this answer并将我创建的清单文件移动到debug源文件夹,然后它就可以工作了。现在,android:usesCleartextTraffic="true"选项仅应用于我的调试构建,该构建由检测测试使用,因此它可以工作,但感觉仍然不是正确的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 18:59:41

对我来说,解决方案是在androidTest/AndroidManifest.xml中添加一个简单的AndroidManifest.xml。您引用的答案中也提到了这一点,但在这种情况下,它不起作用,因为旧的工具没有合并这个AndroidManifest.xml

因此,在androidTest目录中,在java目录旁边,我有以下内容:

代码语言:javascript
复制
~/source/my-library/src/androidTest develop*
❯ ls
AndroidManifest.xml java

使用此AndroidManifest.xml文件:

代码语言:javascript
复制
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.mypackage.mylibrary">

    <application
        android:usesCleartextTraffic="true" />

</manifest>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53804484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档