NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClientJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient

Сообщение Anonymous »

Об автоматическом тестировании в Java-проекте Android с использованием платформы Appium.
После выполнения рекомендаций по автоматическому тестированию с помощью Appium
у меня было: p>
  • Java-проект Android (язык программирования Java)
  • include : платформа appium (реализация библиотеки appium)
  • установка метода appium

    < li>сервер Appium запущен
  • также включает в себя эти среды тестирования: testNG, espresso, uiautomator2
    < /li>
После записи|запуска тестового примера не удается найти класс|пакет java.net.http.HttpClient (в то время как другие классы необходимо найти в пакете java. net.http, например: URL, ...)

NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient

Изображение

Как решить эту проблему?

Код: Выделить всё

package ex.jvautotest;

import android.util.Log;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;

import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.options.BaseOptions;

public class FirstTest {

static AndroidDriver driver;

@BeforeClass
public static void setUp() throws MalformedURLException {
Log.d("", "SETUP ...");

var options = new BaseOptions()
.amend("appium:automationName", "UiAutomator2")
.amend("appium:deviceName", "emulator-5554")
.amend("appium:platformName", "Android")
.amend("appium:app", "/Users/.../Desktop/app-debug.apk")
.amend("appium:newCommandTimeout", 3600)
.amend("appium:connectHardwareKeyboard", true);

/// ERROR IN THIS LINE
driver = new AndroidDriver(new URL("http://127.0.0.1:4723"), options);

Log.d("", "SETUP SUCCESS");
}

@Test
public void sampleTest() throws Exception {
try {
Duration d = Duration.ofSeconds(10);
// 1 - get Email, then input text
//            By usernameId = By.id("com.example.autotestsample:id/username");
By usernameId = By.xpath(
"//android.widget.EditText[@resource-id=\"com.example.autotestsample:id/username\"]");
driver.findElement(usernameId).sendKeys("user@email.com");

} catch (Exception e) {
Log.d("", "Login failed");

throw e;
}
}

@AfterClass
public static void tearDown() {
driver.quit();
}
}
Файл build.gradle:

Код: Выделить всё

plugins {
alias(libs.plugins.android.application)
}

android {
namespace = "ex.jvautotest"
compileSdk = 35

defaultConfig {
applicationId = "ex.jvautotest"
minSdk = 33
targetSdk = 35
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
packaging {
resources {
excludes.add("META-INF/LICENSE.md")
excludes.add("META-INF/LICENSE-notice.md")
excludes.add("META-INF/INDEX.LIST")
excludes.add("META-INF/io.netty.versions.properties")
excludes.add("META-INF/DEPENDENCIES")
}
}
}

dependencies {
//    implementation("org.openjdk:java.net:21")

implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.activity)
implementation(libs.constraintlayout)
implementation(libs.androidx.room.rxjava2)
implementation(libs.androidx.room.rxjava3)
implementation(libs.androidx.room.guava)
testImplementation(libs.androidx.room.testing)
implementation(libs.androidx.room.paging)

implementation(libs.ext.appiumJavaClient)
testImplementation(libs.ext.appiumJavaClient)

implementation(libs.ext.appiumSeleniumClient)
testImplementation(libs.ext.appiumSeleniumClient)
implementation(libs.ext.appiumSeleniumHttp)
testImplementation(libs.ext.appiumSeleniumHttp)

testImplementation(libs.junit)
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core)
androidTestImplementation(libs.junit.jupiter)
androidTestImplementation(libs.testng)
}
Файл libs.versions.toML:

Код: Выделить всё

    [versions]
agp = "8.7.2"
appiumJavaClient = "9.3.0"
#appiumSeleniumClient = "4.26.0"

junit = "4.13.2"
junitVersion = "1.2.1"
junitJupiter = "5.11.3"
roomRuntime = "2.6.1"
testng = "7.10.2"
espressoCore = "3.6.1"

appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.3"
constraintlayout = "2.2.0"

[libraries]
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomRuntime" }
androidx-room-guava = { module = "androidx.room:room-guava", version.ref = "roomRuntime" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "roomRuntime" }
androidx-room-paging = { module = "androidx.room:room-paging", version.ref = "roomRuntime" }
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "roomRuntime" }
androidx-room-rxjava2 = { module = "androidx.room:room-rxjava2", version.ref = "roomRuntime" }
androidx-room-rxjava3 = { module = "androidx.room:room-rxjava3", version.ref = "roomRuntime" }
androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "roomRuntime" }

ext-appiumJavaClient = { group = "io.appium", name = "java-client", version.ref = "appiumJavaClient" }

ext-appiumSeleniumClient = { group = "org.seleniumhq.selenium", name = "selenium-java", version.ref = "appiumSeleniumClient" }
ext-appiumSeleniumHttp = { group = "org.seleniumhq.selenium", name = "selenium-http", version.ref = "appiumSeleniumClient" }

junit = { group = "junit", name = "junit", version.ref = "junit" }
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junitJupiter"  }
testng = { group = "org.testng", name = "testng", version.ref = "testng" }

espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
Система сборки:
  • openjdk@21
  • Gradle 8.9 && 8.11
Изображение
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... httpclient
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • NoClassDefFoundError: Не удалось разрешить: Ljava/net/http/HttpClient
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»