提问人:JonasVautherin 提问时间:10/25/2023 最后编辑:JonasVautherin 更新时间:10/25/2023 访问量:37
插桩测试使用主 AndroidManifest 而不是测试版本
Instrumented test uses main AndroidManifest instead of the test version
问:
我正在尝试在某些 Android 插桩测试中使用 OkHttp,但出现以下错误:
java.net.UnknownServiceException:网络安全策略不允许与 localhost 进行明文通信
对于 API 28 及更高版本,文档指出应在这种情况下进行设置。android:usesCleartextTraffic
如果我设置我的 ,那么它就可以工作了。但这不是我想要的;我只想为测试启用此功能。android:usesCleartextTraffic="true"
main/AndroidManifest.xml
所以我创建了myproject/app/src/androidTest/AndroidManifest.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:usesCleartextTraffic="true" />
</manifest>
它做到了我所期望的:生成的检测 apk(./app/build/intermediates/apk/androidTest/debug/app-debug-androidTest.apk)有一个正确设置的 AndroidManifest(我直接在 app-debug-androidTest.apk 中检查过。usesCleartextTraffic
apktool
但这似乎并不重要,因为无论如何,在运行时它会以某种方式依赖于主应用程序的 AndroidManifest:./app/build/intermediates/apk/debug/app-debug.apk。如果我在主 AndroidManifest 中设置,那么它可以工作。但这不是我想要的;我只想要它用于仪器化测试!usesCleartextTraffic=true
app-debug-androidTest.apk 和 app-debug 之间有什么关系.apk在运行插桩测试时,如何使 androidTest/AndroidManifest.xml 在运行插桩测试时具有优先级(或被合并)到主测试中?
答: 暂无答案
评论
usesCleartextTraffic