gpt4 book ai didi

android - 如何制作android :usesCleartextTraffic ="true" only for instrumentation tests?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:23 24 4
gpt4 key购买 nike

我正在使用 RESTMock用于我的仪器测试,但它仅在我设置 usesCleartextTraffic 时有效在我的 list 中为 true。不过,我只希望仪器测试也是如此。有办法吗?

我尝试在 androidTest 文件夹中创建一个新的 list 文件。测试运行但失败,如 usesCleartextTraffic 仍然是 false

<?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: BC 提供商不再提供 KeyPairGenerator.RSA 的实现。有关详细信息,请参阅 https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html。

有什么想法吗?


编辑:

我关注了this回答并将我创建的这个 list 移动到 debug 源文件夹,然后它就可以工作了。现在 android:usesCleartextTraffic="true" 选项只应用于我的调试版本,它被仪器测试使用,所以它有效,但它仍然不是正确的解决方案。

最佳答案

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

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

~/source/my-library/src/androidTest develop*
❯ ls
AndroidManifest.xml java

使用这个 AndroidManifest.xml 文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.mylibrary">

<application
android:usesCleartextTraffic="true" />

</manifest>

关于android - 如何制作android :usesCleartextTraffic ="true" only for instrumentation tests?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com