测试人社区

求助:今天appium-server端运行pyharm脚本用例时,报错

具体报错信息:
E selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Cannot verify the signature of ‘/var/folders/6g/y1h0wc253835k2x9l98_64yc0000gn/T/2021025-40657-xyvhyx.0qoy8/appium-uiautomator2-server-v4.16.0.apk’. Original error: Error: A JNI error has occurred, please check your installation and try again
E Exception in thread “main” java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
appiumserver版本:
[Appium] Welcome to Appium v1.15.1
[Appium] Non-default server args:
[Appium] logFile: appium25.log
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
运行appium时输入的命令:
appium -g appium25.log |tee
自己定位,初始化时,运行webdriver时,可能是sdk里跟java相关的某个地方的java版本是53 ,而他目前只能支持52.
麻烦老师看下怎么解决
图片



你的build-tools多少版本

上面的截图应该是版本吧,我不太会看build-tools版本

@seveniruby

看下你的java版本 估计太低了

java version “1.8.0_221”

我难道还要升级???

你估计有多个Java吧,你把出错的命令单独执行下,log中有详细的执行什么命令报错的语句。ApkSignerTool 主要是这个工具的相关命令

appium25.log (63.6 KB)
老师这是使用appium服务端执行时的日志,我有点不会看里边哪里有问题了

日志在上边

# 执行
/Users/XXXX/Library/Android/sdk/build-tools
# 执行
open .

然后截图

build-tools安装30以下的版本试试

Using 'apksigner.jar' from '/Users/caohe/Desktop/android-sdk-macosx/build-tools/30.0.0-preview/lib/apksigner.jar'
ceshiren.com:~ seveniruby$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
ceshiren.com:~ seveniruby$ java -Xmx1024M -Djava.library.path= -jar /Users/seveniruby/Library/Android/sdk/build-tools/30.0.3/lib/apksigner.jar
USAGE: apksigner <command> [options]
       apksigner --version
       apksigner --help

EXAMPLE:
       apksigner sign --ks release.jks app.apk
       apksigner verify --verbose app.apk

apksigner is a tool for signing Android APK files and for checking whether
signatures of APK files will verify on Android devices.


        COMMANDS
rotate                Add a new signing certificate to the SigningCertificateLineage

sign                  Sign the provided APK

verify                Check whether the provided APK is expected to verify on
                      Android

lineage               Modify the capabilities of one or more signers in an existing
                      SigningCertificateLineage

version               Show this tool's version number and exit

help                  Show this usage page and exit

这是我本地的情况。

你用的sdk build-tool版本是一个30.0.0.preview,这个版本官方已经下载不到了,建议你升级或者降级下看看。我用的是30.0.3,java的版本1.8.0_265 ,是可以运行的

下图是我刚刚安装了的29.03


下图是我刚刚升级的sdk preview

我是需要把preview的这个卸载 ,保留上边的29.03么?这俩搞的我,蒙蒙的

老师看下上图

恩,用29.03吧。然后用java主动执行下那个jar包。那个apksigner.jar你可以在sdk目录下搜索下。用java -jar apksigner.jar去执行下