我想從另一個Java應用程序創建我的Android虛擬設備。 我不想使用默認的Android AvdManager,因爲您無法設置您想要創建AVD的位置,並且它具有異國情調的caraters問題。從Java應用程序創建一個Android虛擬設備編程
所以我得到了AvdMagager的sdklib.jar並嘗試這樣做。
但因爲我有我的日誌不能創建一個AVD:
錯誤
無法找到ABI%2 $ s創建「%1 $ s」的文件複製到文件夾AVD。
這是我做的一個爲例:
class Choice implements ISdkLog {
public Choice() {
com.android.sdklib.internal.avd.AvdManager avdmanager;
try {
com.android.sdklib.SdkManager manager = com.android.sdklib.SdkManager.createManager("Boulet", this);
IAndroidTarget[] targets = manager.getTargets();
avdmanager= new com.android.sdklib.internal.avd.AvdManager(manager,this);
avdmanager.createAvd(new java.io.File("filename"), "dunno", targets[0], "dunno", "dunno", "dunno", null, false, false, false, this);
} catch (AndroidLocationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
//Method of interface ISdkLog
@Override
public void error(Throwable arg0, String arg1, Object... arg2) {
// TODO Auto-generated method stub
System.out.println("Error");
System.out.println(arg1);
System.out.println(arg0);
}
@Override
public void printf(String arg0, Object... arg1) {
// TODO Auto-generated method stub
System.out.println("Log");
System.out.println(arg0);
}
@Override
public void warning(String arg0, Object... arg1) {
// TODO Auto-generated method stub
System.out.println("Warning");
System.out.println(arg0);
}
}
我猜一個簡單的命令行調用是簡單的吧?因爲你可以從命令行創建一個新的avd :) – WarrenFaith 2011-12-22 12:07:33
同意,請使用文檔化的命令行界面。 – CommonsWare 2011-12-22 14:47:30
新版Android工具中命令行的問題在於它等待用戶輸入(即使使用了--force參數)。所以Runtime.getRuntime()。exec命令被卡住了。 – Kowlown 2011-12-22 19:20:17