android - 运行 Android 模拟器 : "Warning: data partition already in use" 的问题

标签 android android-emulator android-build

我的 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

如果有人能指导我解决这些问题,我将不胜感激!

最佳答案

我在搜索同一问题时发现了这个问题。您提到的乱码 disk.dataPartition.path 让我更多地尝试使用路径。我从 system.imguserdata.img 中删除了 sysdir 路径。请注意,ramdisk.imgsdcard.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

关于android - 运行 Android 模拟器 : "Warning: data partition already in use" 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597016/

相关文章:

Android Activity 到 Service 类

android - 在 Android 模拟器中切换到横向模式

java - 尝试运行多类项目时 Android Studio 模拟器崩溃

Android 应用程序在启动时无缘无故地崩溃

android - 资源数组

更新到 3.2 后的 Android Gradle 错误

Android:如何从终端构建 .apk?

android - 如何正确定义 v7 appcompat 依赖?

java - Kotlin 中的不相交联合可在 Java 中访问

android - 确定何时取消随机通知,或何时触发 PendingIntent