簡體   English   中英

java.lang.ClassNotFoundException 運行時嘗試使用 appium 打開 android 仿真器

[英]java.lang.ClassNotFoundException when running trying to open android emulator with appium

我正在嘗試從 Eclipse 中的 Windows 運行以下代碼,並找到我在標題中提到的錯誤。 任何人都可以請建議我。

代碼:

package com.apanp.one;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;    
import org.openqa.selenium.remote.DesiredCapabilities;    
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;

public class base {

    public static void main(String[] args) throws MalformedURLException {

        File  f = new File("src");
        File fs =new File(f,"original.apk");

        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Shayan");
        cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
        cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
        AndroidDriver<AndroidElement> driver = new AndroidDriver <> (new URL("http://127.0.0.1/wd/hub"), cap);    
    }   
}

錯誤:

 Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at com.apanp.one.base.main(base.java:24) Caused by: java.lang.ClassNotFoundException: com.google.common.base.Function at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)... 10 more

AVDManager

虛擬設備管理

配置:

  1. JDK JAVA_HOME:C:\Program Files\Java\jdk-14.0.1 Java bin: Z0D61F8370CAD1D412F80B84D1\Java\Program Files\Java\jdk-14.0.1

  2. ANDROID STUDIO DOWNLOAD: https://developer.android.com/studio ANDROID_HOME=C:\Users\Shahid\AppData\Local\Android\Sdk ANDROID-TOOLS-PATH:C:\Users\Shahid\AppData\Local\Android\ SDK\tools ANDROID-TOOLS-BIN PATH: C:\Users\Shahid\AppData\Local\Android\Sdk\tools\bin ANDROID-PLATFORM-PATH:C\Local\Android\AppData -工具

  3. 在 AVD 管理器中創建 ANDROID 仿真器

  4. 我們可以通過命令提示符調用模擬器:C:\Users\Shahid\AppData\Local\Android\Sdk\emulator THEN TYPE:emulator -avd Shayan

  5. 安裝 node.js: https://nodejs.org/en/download/

  6. NODE_HOME:C:\Program Files\nodejs

  7. NPM_HOME:C:\Program Files\nodejs\node_modules\npm\bin

  8. 安裝應用程序服務器(通過命令提示符使用 npm): npm install -g appium

  9. Appium 服務器的一些命令: - 啟動 appium 服務器: appium - 關閉 appium 服務器: ctrl + C; Y/N-> y 和 ENTER - 檢查版本:appium --version - 檢查它在哪里:哪里 appium

  10. 安裝APPIUM JAVA客戶端庫: http://appium.io/downloads.html SELECT JAVA; SELECT JAR

  11. DOWNLOAD ECLIPSE: https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2020-03/R/eclipse-inst-win64.exe

ClassNotFoundException意味着您的classpath中沒有任何 class 來解決此com/google/common/base/Function ,這意味着您缺少此 class ,它屬於您的項目中的番石榴依賴項/jar。 如果您使用的是 maven,請添加以下依賴項

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

  <!-- or, for Android: -->
  <version>23.6-android</version>
</dependency>

對於 java:

您可以下載 jar 文件並將其保存在 class 路徑上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM