我使用RESTMock进行指令插入测试,但只有在清单中将usesCleartextTraffic设置为true时,它才能起作用。不过,我只希望这对于插装测试是正确的。有没有办法做到这一点?
我尝试在androidTest文件夹中创建新的清单文件。测试运行了,但它们失败了,就像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 answer并将我创建的清单文件移动到debug源文件夹,然后它就可以工作了。现在,android:usesCleartextTraffic="true"选项仅应用于我的调试构建,该构建由检测测试使用,因此它可以工作,但感觉仍然不是正确的解决方案。
发布于 2019-01-08 18:59:41
对我来说,解决方案是在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>https://stackoverflow.com/questions/53804484
复制相似问题