我正在使用RESTMock进行检测测试,但只有在 list 中将 usesCleartextTraffic 设置为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: 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的回答,并将我创建的此 list 移动到debug源文件夹中,然后它起作用了。现在android:usesCleartextTraffic="true"选项仅适用于我的调试版本,由工具测试使用,因此可以正常工作,但仍然感觉不合适。

最佳答案

对我来说,解决方案是在AndroidManifest.xml中添加一个简单的androidTest/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>

10-05 18:49