无法为Android sdkmanager设置java.io.tmpdir

时间:2017-06-27 16:18:00

标签: android-studio jvm jvm-arguments

我在Fedora 25系统上安装了Android Studio。当我去使用模拟器并创建一个新的虚拟设备时,我获得了一些下载系统映像的选项。这失败的消息是设备上没有剩余空间"。

从那时起,每次我执行相同的步骤,而不是选择下载哪个图像,我得到"没有可用的系统图像。你上网了吗?" - 我是。

然后我尝试直接运行sdkmanager,然后用:

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
   20622
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

我认为这是指/tmp,它是一个内存(tmpfs)文件系统,上限为4GB,或多或少都没有使用。如果需要更多空间,我可以在其他地方使用。

sdkmanager启动脚本提到:

 Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'

我已尝试过与此相关的三件事,使用100 GB文件系统中的半满位置:

  • 通过$_JAVA_OPTIONS设置。 JVM承认这一点,但应用程序仍然失败
  • 通过$JAVA_OPTS$SDKMANAGER_OPTS设置。
  • 直接编辑到上面的sdkmanager启动脚本。

这些都没有任何区别。

1 个答案:

答案 0 :(得分:1)

删除安装( int[] lst = new int[] { 2, 3, 4 }; int[] multipliedList = new int[lst.Length * (lst.Length - 1)]; int idx = 0; for (int i = 0; i < lst.Length; i++) { int currIdx = 0; foreach (var item in lst) { if (i != currIdx) { multipliedList[idx] = lst[i] * item; idx++; } currIdx++; } } ~/Android等),设置~/.AndroidStudio1.3,然后重新运行$_JAVA_OPTIONS)解决了这个问题。

这意味着当应用程序第一次运行时,临时目录正在某处硬编码。