3

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

誰かがこの混乱のいくつかを私に向けることができれば、私はそれを大いに感謝します!

4

2 に答える 2

1

同じ問題を検索してこの質問を見つけました。あなたが言及した文字化けdisk.dataPartition.pathにより、私はパスをもっといじくり回しました。system.imgおよびから sysdir パスを削除しましたuserdata.img。と のパスはまだ必要であることに注意してramdisk.imgくださいsdcard.img。この変更を行うと、エラーはなくなりました。これが私の更新されたスクリプトです。

emulator \
   -sysdir img/ \
   -system system.img \
   -ramdisk img/ramdisk.img \
   -data userdata.img \
   -kernel prebuilts/qemu-kernel/arm/kernel-qemu-armv7 \
   -sdcard img/sdcard.img \
   -skindir sdk/emulator/skins \
   -skin WVGA800 \
   -memory 512 \
   -partition-size 1024
于 2014-01-07T15:28:55.793 に答える