3588 安卓编译空间不足报错
- 作者:吴思含(Witheart)
- 更新时间:20250605
编译失败信息如下:
sh
[ 97% 128312/131660] //packages/modules/Wifi/framework:framework-wifi.stubs.source metalava merged [common]
WARN: Unable to load JNA library (OS: Linux 5.15.0-131-generic)
java.lang.UnsatisfiedLinkError: Failed to create temporary file for /com/sun/jna/linux-x86-64/libjnidispatch.so library: No space left on device
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1032)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988)
at com.sun.jna.Native.<clinit>(Native.java:195)
at com.intellij.jna.JnaLoader.load(JnaLoader.java:16)
at com.intellij.jna.JnaLoader.isLoaded(JnaLoader.java:29)
at com.intellij.openapi.util.io.FileSystemUtil.getMediator(FileSystemUtil.java:57)
at com.intellij.openapi.util.io.FileSystemUtil.<clinit>(FileSystemUtil.java:49)
at com.intellij.openapi.vfs.impl.ZipHandler.setFileAttributes(ZipHandler.java:48)
at com.intellij.openapi.vfs.impl.ZipHandler$1.createAccessor(ZipHandler.java:30)
at com.intellij.openapi.vfs.impl.ZipHandler$1.createAccessor(ZipHandler.java:25)
at com.intellij.util.io.FileAccessorCache.createHandle(FileAccessorCache.java:62)
at com.intellij.util.io.FileAccessorCache.get(FileAccessorCache.java:55)
at com.intellij.openapi.vfs.impl.ZipHandler.getCachedZipFileHandle(ZipHandler.java:70)
at com.intellij.openapi.vfs.impl.ZipHandler.acquireZipHandle(ZipHandler.java:117)
at com.intellij.openapi.vfs.impl.ZipHandlerBase.createEntriesMap(ZipHandlerBase.java:38)
at com.intellij.openapi.vfs.impl.ArchiveHandler.getEntriesMap(ArchiveHandler.java:179)
at com.intellij.openapi.vfs.impl.jar.CoreJarHandler.<init>(CoreJarHandler.java:42)
at com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem.lambda$new$0(CoreJarFileSystem.java:33)
at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:174)
at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
at com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem.findFileByPath(CoreJarFileSystem.java:44)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.findJarRoot(KotlinCoreEnvironment.kt:391)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.contentRootToVirtualFile(KotlinCoreEnvironment.kt:368)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.access$contentRootToVirtualFile(KotlinCoreEnvironment.kt:111)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$3.invoke(KotlinCoreEnvironment.kt:209)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$3.invoke(KotlinCoreEnvironment.kt:209)
at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.convertClasspathRoots(ClasspathRootsResolver.kt:70)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:216)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:428)
at com.android.tools.lint.UastEnvironmentKt.createKotlinCompilerEnv(UastEnvironment.kt:347)
at com.android.tools.lint.UastEnvironmentKt.access$createKotlinCompilerEnv(UastEnvironment.kt:1)
at com.android.tools.lint.UastEnvironment$Companion.create(UastEnvironment.kt:183)
at com.android.tools.metalava.Driver.createProjectEnvironment(Driver.kt:953)
at com.android.tools.metalava.Driver.parseSources(Driver.kt:902)
at com.android.tools.metalava.Driver.parseSources$default(Driver.kt:878)
at com.android.tools.metalava.Driver.loadFromSources(Driver.kt:814)
at com.android.tools.metalava.Driver.processFlags(Driver.kt:257)
at com.android.tools.metalava.Driver.run(Driver.kt:115)
at com.android.tools.metalava.Driver.run$default(Driver.kt:93)
at com.android.tools.metalava.Driver.main(Driver.kt:83)
14:09:43 ninja failed with: exit status 1
#### failed to build some targets (02:45:28 (hh:mm:ss)) ####
Build android failed!
直接导致编译报错的是
sh
Failed to create temporary file...: No space left on device
原因分析
这个问题是系统盘空间不足引起的。虽然源码和构建目录(/mnt/hdd/rk3588_android12_sdk/)位于空间充足的机械硬盘上,但 Android 构建过程中的临时文件会使用系统盘空间,比如使用 /tmp 处理临时文件。
解决方案
清理系统盘。