Androidエミュレーターに問題があるようです。すべての指示に従って適切にビルドしたところ、次のようにエミュレーターを実行できました。
emulator -sysdir out/target/product/generic/ \
-system out/target/product/generic/system.img \
-ramdisk out/target/product/generic/ramdisk.img \
-kernel kernel-goldfish-xattr-2.6.29 \
-sdcard tdroidsd.img -skindir development/tools/emulator/skins \
-data out/target/product/generic/userdata.img \
-skin WVGA800 \
-memory 512 -partition-size 500
これは、エミュレーターを起動するために正常に機能します。ただし、起動するたびに、次の警告が表示されます。
WARNING: Data partition already in use. Changes will not persist!
エミュレーターを再起動または強制終了するたびに、インストールしたアプリケーションが消えるため、これは大きな苦痛です。
これに関連するトピックがstackoverflowに多数あることがわかり、次のことを確認しました。
- ロックファイルの存在: なし
- adb-server : 強制終了して再起動しても違いはありません
私はEclipseを少しも使用しておらず、Linuxマシン(Gentoo)を使用していることに注意してください。
verbose で実行すると、次のように表示されます。
emulator: autoconfig: -initdata out/target/product/generic/userdata.img
disk.ramdisk.path = out/target/product/generic/ramdisk.img
disk.systemPartition.initPath = out/target/product/generic/system.img
disk.systemPartition.size = 500m
disk.dataPartition.path = out/target/product/generic/out/target/product/generic/userdata.img
disk.dataPartition.size = 500m
avd.name = <build>
disk.dataPartition.path 設定がどういうわけか文字化けしているようですが、理由はわかりません。私は.bashrcに次のものを持っています
export PATH="~/bin:$PATH"
export ANDROID_PRODUCT_OUT="~/tdroid/tdroid-4.1.1_r6/out/target/product/generic"
export PATH="~/tdroid/tdroid-4.1.1_r6/system/core:$PATH"
export ANDROID_BIN="~/tdroid/tdroid-4.1.1_r6/out/host/linux-x86/bin"
export ANDROID_QTOOLS="~/tdroid/tdroid-4.1.1_r6/development/emulator/qtools"
export ANDROID_TOOLCHAIN="~/tdroid/tdroid-4.1.1_r6/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin"
export ANDROID_EABI_TOOLCHAIN="~/tdroid/tdroid-4.1.1_r6/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin"
export ANDROID_HOST_OUT="~/tdroid/tdroid-4.1.1_r6/out/host/linux-x86"
PATH=$ANDROID_BIN:$PATH
PATH=$ANDROID_HOST_OUT:$PATH
誰かがこの混乱のいくつかを私に向けることができれば、私はそれを大いに感謝します!