在处理命令时发生未知的服务器端错误。原始错误:无法使用默认证书签名。原始错误产生ENOTDIR
我正在尝试使用Appium Desktop应用程序启动一个android应用程序。 Appium服务器显示以下错误日志;
启动'/home/santoshpc/Android/Sdk/build-tools/28.0.3/apksigner' 带参数 '[“ sign”,“-key”,“ / tmp / .mount_AppiumGDrtg1 / resources / app / node_modules / appium / node_modules / appium-adb / keys / testkey.pk8”,“-cert”,“ / tmp / .mount_AppiumGDrtg1 / resources / app / node_modules / appium / node_modules / appium-adb / keys / testkey.x509.pem“,” / tmp / .mount_AppiumGDrtg1 / resources / app / node_modules / appium / node_modules / appium-uiautomator2-server / apks /appium-uiautomator2-server-debug-androidTest.apk“]' [ADB]执行apksigner时出错:命令 '/home/santoshpc/Android/SDK/build-tools/28.0.3/apksigner sign --key /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8 --cert /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' 以代码1 [ADB] apksigner stderr退出:线程“ main”中的异常 java.nio.file.FileSystemException: /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk: 只读文件系统[ADB]位于 sun.nio.fs.UnixException.translateToIOException(UnixException.java:91) [亚行] sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) [亚行] sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:447)上的[ADB] [ADB] 在 sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:262) [ADB]位于java.nio.file.Files.move(Files.java:1395)[ADB]位于 com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:342)[ADB] 在com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89) [ADB] [ADB]无法使用apksigner工具进行签名。默认为 sign.jar。原始错误:命令 '/home/santoshpc/Android/SDK/build-tools/28.0.3/apksigner sign --key /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8 --cert /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' 以代码1退出; StdErr:线程“ main”中的异常 java.nio.file.FileSystemException: /tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk: 只读文件系统[ADB]位于 sun.nio.fs.UnixException.translateToIOException(UnixException.java:91) [亚行] sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) [亚行] sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:447)上的[ADB] [ADB] 在 sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:262) [ADB]位于java.nio.file.Files.move(Files.java:1395)[ADB]位于 com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:342)[ADB] 在com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89) [ADB] [ADB]辞职apk。 [UiAutomator2]删除UiAutomator2 会话[UiAutomator2]删除UiAutomator2服务器会话[WD代理] 将'/'与命令名称'deleteSession'匹配[UiAutomator2]没有得到 确认UiAutomator2 deleteSession是否工作;错误是: UnknownError:处理时发生未知的服务器端错误 命令。原始错误:尝试代理会话命令而没有 会话ID [ADB]正在运行 '/ home / santoshpc / Android / SDK / platform-tools / adb -P 5037 -s 0123456789ABCDEF外壳是强制停止的eu.niko.smart.naswi.main' [Logcat]停止logcat捕获[ADB]删除转发的端口套接字 连接:8200 [ADB]正在运行 '/ home / santoshpc / Android / SDK / platform-tools / adb -P 5037 -s 0123456789ABCDEF转发-删除tcp:8200'[UiAutomator2]无法 删除端口转发“执行adbExec时出错。原始错误:“命令 '/ home / santoshpc / Android / SDK / platform-tools / adb -P 5037 -s 0123456789ABCDEF转发-删除tcp:8200',代码为1'; Stderr:“错误:未找到侦听器'tcp:8200'”;代码:'1'' [BaseDriver]事件“ newSessionStarted”记录在1552282079530 (11:12:59 GMT + 0545(+0545))[MJSONWP]遇到内部错误 运行命令:错误:无法使用默认证书签名。 原始错误在以下位置产生ENOTDIR [MJSONWP] ADB.apkSigningMethods.signWithDefaultCert (/tmp/.mount_AppiumGDrtg1/resources/app/node_modules/appium/node_modules/appium-adb/lib/tools/apk-signing.js:124:13) [HTTP] <-POST / wd / hub / session 500 9847 ms-206 [HTTP] [HTTP]-> 删除/ wd / hub / session [HTTP] {} [HTTP]找不到路由。设置 内容类型为'text / plain'[HTTP] <-DELETE / wd / hub / session 404 5 毫秒-57
我添加了以下 DesiredCapabilities
{
"noReset": true,
"automationName": "uiautomator2",
"appPackage": "myapp package name",
"appActivity": "my app activity name",
"deviceName": "My device",
"platformName": "android"
}
Appium桌面版本:1.11.1 操作系统-ubuntu
答案 0 :(得分:0)
这是位于/usr/lib/node_modules/appium/node_modules/appium-adb/build/lib/tools
位置的“ apk-signing.js”文件中的错误。
可能的解决方案:
apk-signing.js
没有错误)apk-signing.js
,例如appium版本1.7.2。这是最终解决方案,如果高于2则不起作用。您必须修改文件apk-signing.js
./node-v6.11.4-linux-armv7l/lib/node_modules/appium/node_modules/appium-adb/build/lib/tools/apk-signing.js
,因此即使看起来没有签名,它也会返回true。如下所述编辑文件。
287 case 20: 288 context$1$0.prev = 20; 289 context$1$0.t0 = context$1$0’catch’; 290 291 _loggerJs2[‘default’].debug(“App not signed with debug cert.”); 292 return context$1$0.abrupt(‘return’, true);
请检查此链接以编辑文件和更多详细信息。
希望这会有所帮助。
答案 1 :(得分:0)
对我来说,有效的方法是转到Appium Desktop配置并从中更改JAVA_HOME
/usr/java/bin
到
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home