【发布时间】:2021-09-19 03:03:16
【问题描述】:
我正在尝试使用 appium android 驱动程序启动一个透明的活动,并传递一些可选的意图参数。它总是以 500 状态失败,并且无论我设置多少 abdExecTimeout 能力值,命令都会超时。
示例代码:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "UiAutomator2");
capabilities.setCapability("app", "/path/to/app.apk");
capabilities.setCapability("appActivity", "com.myapp.home.splash.SplashActivity");
capabilities.setCapability("appPackage", "com.myapp.app");
capabilities.setCapability("udid","e76dcaaqs");
capabilities.setCapability("avdLaunchTimeout", 300000);
capabilities.setCapability("useKeystore", false);
capabilities.setCapability("autoGrantPermissions",true);
capabilities.setCapability("automationName", "UiAutomator2");
capabilities.setCapability("skipUnlock", true);
capabilities.setCapability("androidInstallTimeout", 180000);
capabilities.setCapability("adbExecTimeout", 60000);
capabilities.setCapability("ignoreHiddenApiPolicyError", true);
capabilities.setCapability("deviceName", "Oppo Reno");
capabilities.setCapability("appWaitForLaunch", false);
AndroidDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), capabilities);
Activity activity = new Activity("com.myapp.app", "com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity");
String intentParam = "--es \"overrideData\" '[{\"pref_name\": \"MyPref\",\"overrides\": " +
"[{\"key\": \"mykey\",\"value\": \"" + obj.getValue() + "\",\"type\": \"string\"}],\"clear\": false}]'";
activity.setOptionalIntentArguments(intentParam);
// activity.setStopApp(true);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.startActivity(activity);
driver.launchApp();
} catch (OperationFailedException | MalformedURLException e) {
e.printStackTrace();
}
输出日志
[W3C (146a80b7)] 使用 args 调用 AppiumDriver.startActivity(): ["com.myapp.app","com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity","com.myapp.app","com.myapp.home.splash.SplashActivity","",""," ","--es "overrideData" '[{"pref_name": "MyPreferences","overrides": [{"key": "myKey","value": "myValue"","type": "string"}],"clear": false}]' [AndroidDriver] 启动包 'com.myapp.app' 和活动 'com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity' [ADB] 运行'/Users/user1/Library/Android/sdk/platform-tools/adb -P 5037 -s e15adapa shell am start -W -n com.myapp.app/com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity -S --es '"overrideData"' "'[{"pref_name": "MyPreferences","overrides": [{"key": "myKey","value": "myValue","type": "string"}],"clear": false}]'"' [仪器] INSTRUMENTATION_RESULT: shortMsg=进程崩溃。 [仪器] INSTRUMENTATION_CODE:0 [仪器] 进程已退出,代码为 0
奇怪的是,即使进程崩溃,偏好数据也会更新。
【问题讨论】:
标签: java appium appium-android