我尝试在本地运行应用爬虫,以便测试在Android Studio中创建的机器人脚本。
我看了这篇很方便的文章(https://android.jlelse.eu/test-robo-scripts-locally-useful-for-firebase-test-lab-pre-launch-reports-41da83d5769f),遇到了一个问题,爬虫只说抓取开始,抓取立即完成,我在google上找不到这个问题的答案。
下面是日志中的错误:
权限拒绝:不允许从pid = 3778,uid = 3778启动工具组件信息{androidx. test. tools. crawler/androidx. test. tools. crawler. CrawlMonitor},因为包androidx. test. tools. crawler没有与目标androidx. test. tools. crawler. stubapp匹配的签名
我终于找到了一个解决方案,所以我提出这个问题来帮助那些可能像我一样陷入困境的人。听起来有些人在这个问题中遇到了同样的问题(https://stackoverflow.com/a/58631206/13071692)
2条答案
按热度按时间bkhjykvo1#
我发现这个错误是因为我使用的是调试apk版本的应用程序。它需要一个签名版本,所以一旦我在android studio中创建了一个签名版本(Build〉Generate Signed Bundle...),它工作得很好
xesrikrc2#
我也有同样的问题:我有两件事要做。
1.提供密钥库参数
我没有向应用爬虫提供正确的
signingConfig
凭据,因此出现错误:does not have a signature matching the target
.我使用的是一个调试版本,认为这不可能是问题所在,因为我的默认buildType没有设置signingConfig-它看起来像这样:
我错了,因为项目已经定义了一个signingConfigs.debug值,它被隐式地用作调试的signingConfig(参见https://stackoverflow.com/a/28512848/6007104)。
因此,我向
java -jar crawl_launcher.jar
命令添加了--key-store
和--key-store-password
参数,其值与我的signingConfigs.debug
配置相匹配。2.手动安装
我进一步查看日志,发现了一行字:为了解决这个问题,我手动安装了应用程序并测试了apk,而不是依赖于应用程序爬虫来为我做这件事。
我用
./gradlew assembleDebug
生成了应用apk,用./gradlew connectedDebugAndroidTest
生成了测试apk,然后在设备上手动安装了这两个apk(先安装应用,再安装测试),然后运行了应用爬虫。结论
以下是我每次想要启动应用程序爬虫时所做的事情。
./gradlew assembleDebug
./gradlew connectedDebugAndroidTest
--app-package-name
参数而不是--apk-file
参数。确保在需要时提供--key-store
和--key-store-password
: