我正在使用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>