使用Eclipse学习Appium时启动模拟器遇APK文件不可访问错误
解决Appium启动模拟器时"文件不存在或无法访问"的问题
从你的日志和代码来看,核心问题出在APK文件的路径定位错误上。Appium日志明确提示找不到C:\Users\Zamranj\eclipse-workspaceNew\AppiumIntro\scr\ApiDemos-debug.apk,我们一步步来修复:
1. 先修正代码里的明显拼写失误
你代码里写的是File f = new File("scr");,这里的文件夹名称大概率是手滑写错了——Eclipse项目里常见的资源/源码文件夹是src,但更关键的是你要先确认APK实际存放的文件夹名称。如果你的APK确实放在项目根目录下的scr文件夹,那跳过这步;否则改成实际的文件夹名(比如专门建一个apps文件夹来放测试APK会更清晰)。
2. 更稳妥的路径写法(推荐)
为了避免相对路径混乱,建议用项目根目录来定位APK,这样不管项目放在哪里都不会出错。修改后的代码如下:
package myAppiumTutorial; 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 projectRoot = new File(System.getProperty("user.dir")); // 定位到APK文件(这里假设你把APK放在项目根目录的apps文件夹下) File apkFile = new File(projectRoot, "apps/ApiDemos-debug.apk"); // 打印路径用于调试,确认和实际APK路径一致(之后可以删掉) System.out.println("当前APK路径:" + apkFile.getAbsolutePath()); DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability(MobileCapabilityType.DEVICE_NAME, "MyFirstEmu"); cap.setCapability(MobileCapabilityType.APP, apkFile.getAbsolutePath()); // 按照日志提示添加适配Android 6+的自动化引擎 cap.setCapability("automationName", "UiAutomator2"); AndroidDriver<AndroidElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"),cap); } }
3. 验证APK的实际位置
- 打开你的Eclipse项目,手动创建
apps文件夹(或者你想用的其他名称),把ApiDemos-debug.apk放进去。 - 右键APK文件 → 选择Properties,查看它的绝对路径,和代码打印的路径对比,确保完全一致。
4. 额外优化提示
日志里还特意提醒:Consider setting 'automationName' capability to 'uiautomator2' on Android >= 6,所以在DesiredCapabilities里添加automationName配置,可以避免后续的兼容性问题,建议保留。
内容的提问来源于stack exchange,提问作者Compass55
相关产品推荐
相关产品推荐

