繁体   English   中英

Android App Crawler 不工作 -> 权限拒绝失败

[英]Android App Crawler not working -> Permission Denial failure

我试图在本地运行应用程序爬虫,以测试在 Android Studio 中创建的机器人脚本。

我按照这篇方便的文章 ( https://android.jlelse.eu/test-robo-scripts-locally-useful-for-firebase-test-lab-pre-launch-reports-41da83d5769f ) 遇到了一个问题,其中爬虫刚才说抓取开始,抓取立即完成。 对于这个问题,我在谷歌上找不到任何答案。

这是日志中的错误:

Permission Denial: starting instrumentation ComponentInfo{androidx.test.tools.crawler/androidx.test.tools.crawler.CrawlMonitor} from pid=3778, uid=3778 not allowed because package androidx.test.tools.crawler 没有签名匹配目标 androidx.test.tools.crawler.stubapp

我终于想出了一个解决方案,所以我提出这个问题是为了帮助那些可能像我一样被困住的人。 听起来有些人在这个问题上有同样的问题( https://stackoverflow.com/a/58631206/13071692

我发现这个错误正在出现,因为我使用的是我的应用程序的调试 apk 版本。 它需要一个签名版本,所以一旦我在 android 工作室(Build > Generate Signed Bundle...)创建了一个签名版本,它工作得很好

我遇到了同样的问题:就我而言,我需要做两件事。

1.提供keystore参数

我没有向应用爬虫提供正确的signingConfig凭据,因此出现错误: does not have a signature matching the target

我当时使用的是调试版本,认为这不可能是问题,因为我的默认 buildType 没有设置 signingConfig - 它看起来像这样:

buildTypes {
  debug {
    debuggable true
  }
  ...
}

我错了,因为项目定义了一个 signingConfigs.debug 值,然后隐式用作调试的 signingConfig(参见https://stackoverflow.com/a/28512848/6007104 )。

因此,我将--key-store--key-store-password参数添加到java -jar crawl_launcher.jar命令,其值与我的signingConfigs.debug配置相匹配。

2.手动安装

我在日志中进一步查看并找到一行: Unable to find instrumentation target package <my.package> 为了解决这个问题,我手动安装了应用程序并测试了 apks,而不是依赖应用程序爬虫为我做这件事。

我使用./gradlew assembleDebug生成了应用程序 apk,使用 ./gradlew ./gradlew connectedDebugAndroidTest生成了测试 apk,然后在设备上手动安装了这两个 apk(首先是应用程序,然后是测试)。 然后我运行了应用程序爬虫。

结论

这是我每次想要启动应用程序爬虫时所做的。

  • 卸载旧工件:
adb uninstall androidx.test.tools.crawler
adb uninstall androidx.test.tools.crawler.stubapp
adb uninstall <my.package>
  • 生成应用程序 apk: ./gradlew assembleDebug

  • 生成测试apk: ./gradlew connectedDebugAndroidTest

  • 安装应用apk,然后安装测试apk(你可以使用adb)

  • 从解压缩的应用程序爬虫目录运行应用程序爬虫。 使用--app-package-name参数而不是--apk-file参数。 如果需要,请确保--key-store--key-store-password

java -jar crawl_launcher.jar --android-sdk <my/sdk/location> --app-package-name <my.package> --key-store <my/location/debug.keystore> --key-store-password <mypassword>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM