appium-uiautomator2-server-v0.1.8.apk'退出代码1“同时获取徽章信息

问题描述 投票:0回答:1

我正在尝试使用文档中给出的说明学习Appium:

http://appium.io/docs/en/about-appium/getting-started/?lang=en

我已将此代码放入名为AppiumTest.js的文件中

const wdio = require('webdriverio');

const opts = {
  port: 4723,
  desiredCapabilities: {
    platformName: "Android",
    platformVersion: "8.0",
    deviceName: "Pixel_API_26",
    app: "C:/Users/SStaple/AppData/Local/Android/Sdk/ApiDemos-debug.apk",
    automationName: "UiAutomator2"
  }
};

const client = wdio.remote(opts);

client
  .init()
  .click("~App")
  .click("~Alert Dialogs")
  .back()
  .back()
  .end();

我在启动Appium Server后使用命令:node AppiumTest.js从Node.js命令提示符运行它。还必须运行Android 8模拟器。

(历元服务器V1.7.1)

我在Appium Server窗口中获取输出。有很多错误。显示的第一个错误是:

Error "Command 'C\:\\Users\\SStaple\\AppData\\Local\\Android\\Sdk\\build-tools\\26.0.2\\aapt.exe d badging C\:\\Users\\SStaple\\AppData\\Local\\Programs\\appium-desktop\\resources\\app\\node_modules\\appium\\node_modules\\appium-uiautomator2-driver\\uiautomator2\\appium-uiautomator2-server-v0.1.8.apk' exited with code 1" while getting badging info

我试过在命令提示符中单独运行此命令:

C:\Users\SStaple\AppData\Local\Android\Sdk\build-tools\26.0.2\aapt.exe d badging C:\Users\SStaple\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.1.8.apk

我得到的结果是:

W/zipro   (13656): Error opening archive C:\Users\SStaple\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.1.8.apk: Invalid file
ERROR: dump failed because no AndroidManifest.xml found

有任何想法吗?

更新28/12/2017 - 我找到了解决方案!

有问题的文件看起来很可疑。它的大小是0Kb!我从https://github.com/appium/appium-uiautomator2-server/releases下载了apk文件并使用了它。这个是1,518 KB大小。 (显然在安装测试版时,npm没有将apk文件放到正确的位置有一些问题。)

解决了这个问题后,我可以继续讨论下一个问题!

javascript node.js appium
1个回答
0
投票

这是一个known issue与apk签名。

您可以从尝试更新依赖项开始:

npm install appium-uiautomator2-driver
npm install appium-adb

如果它没有帮助,你可以尝试更多(但这适用于Linux):

修改./node-v6.11.4-linux-armv7l/lib/node_modules/appium/node_modules/appium-adb/build/lib/tools/apk-signing.js,即使看起来没有签名也会返回true。

case 20: 
 context$1$0.prev = 20;
 context$1$0.t0 = context$1$0’catch’; 
 _loggerJs2[‘default’].debug(“App not signed with debug cert.”); 
 return context$1$0.abrupt(‘return’, true);
© www.soinside.com 2019 - 2024. All rights reserved.