java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet (Ljava / util / Comparator;) Ljava / util / stream / Collector; - PullRequest
0 голосов
/ 17 сентября 2018

Я получаю сообщение об ошибке при установке Appium, не в состоянии запустить приложение.Я использую настройки конфигурации:

java-client = 3.1.0
selenium-java = 3.11.0
appium-version = 1.7.0

Также добавлены следующие зависимости, но все еще сталкиваются с той же проблемой:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency> 

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
</dependency>

Следующие возможности, которые я установил:

File app=new File(prop.getProperty("apkFilePath"));
DesiredCapabilities cap=new DesiredCapabilities();
cap.setCapability("DeviceName", "Redmi Note 5");
cap.setCapability("PlatformVersion", prop.getProperty("platformVersion"));
cap.setCapability("platformName", "Android");
cap.setCapability("app", app.getAbsolutePath());
try{
    driver=new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"),cap);
}catch(Exception e){
    e.printStackTrace();
}


Error: java.lang.NoSuchMethodError: 
    com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(Ljava/util/Comparator;)Ljava/util/stream/Collector;
    at org.openqa.selenium.remote.NewSessionPayload.lambda$validate$4(NewSessionPayload.java:199)
    at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:372)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
    at org.openqa.selenium.remote.NewSessionPayload.validate(NewSessionPayload.java:215)
    at org.openqa.selenium.remote.NewSessionPayload.(NewSessionPayload.java:163)
    at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:114)

Пожалуйста, посмотрите на это, как решить эту проблему ... Я пробовал последние два дня, но все еще сталкиваюсь с той же проблемой.есть какие-то другие способы решить эту установку приложения, пожалуйста, предложите ... В ожидании доброго ответа ...

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

selenium-java-3.11 требуется Guava 23.6-jre as per the pom.xml:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>23.6-jre</version>
  <classifier></classifier>
</dependency>

Вы понизились до более старой версии Guava, удалите свою собственную версию из pom.xml и дайте селену забратьтребуемая версия.

0 голосов
/ 17 сентября 2018

попробуйте использовать platformVersion вместо PlatformVersion и deviceName вместо DeviceName .

cap.setCapability("deviceName", "Redmi Note 5");
cap.setCapability("platformVersion", prop.getProperty("platformVersion"));
//or you can use
//cap.setCapability("platformVersion", "8.1.0"); //your android os version directly

вам не нужно использовать зависимость от guava, если вы используете проект maven добавить селен-ява

0 голосов
/ 17 сентября 2018

Возможно, в вашем пути к классам есть конфликтующие версии Guava (т. Е. Сигнатуры метода, который вы пытаетесь вызвать, отличаются).Я ранее сталкивался с NoSuchMethodError, и это на самом деле происходит из конфликтующих версий банок.Взгляните на этот ответ .Также взгляните на этот выпуск

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...