由于某些奇怪的原因,我无法在我的 Android Studio 环境中解决
ProcessHandle
:
Android Studio Koala | 2024.1.1 Patch 1
Build #AI-241.18034.62.2411.12071903, built on July 11, 2024
Runtime version: 17.0.11+0--11852314 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 5120M
Cores: 8
Registry:
ide.instant.shutdown=false
Non-Bundled Plugins:
PlantUML integration (7.10.1-IJ2023.2)
com.intellij.marketplace (241.17890.43)
Lombook Plugin (241.18034.62)
com.cmgapps.intellij.proguard-retrace-unscambler (1.9.1)
Docker (241.18034.82)
SequenceDiagram (3.0.12)
com.kn.diagrams.generator.generator (2022.2.0)
一旦添加对
ProcessHandle
的引用(以及所需的导入语句):
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.time.Duration;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ThreadLocalRandom;
import java.lang.ProcessHandle;
我收到此错误:
Cannot resolve symbol 'ProcessHandle'
知道“ProcessHandle”从 JDK 9 开始才被引入 Java,并且我的系统上安装了 JDK 8,我首先卸载了 JRE8/JDK8 的任何残余,希望这能够消除我所遇到的任何冲突。无法通过检查 Settings
和
Project Structure
来发现。这没有帮助。 因此,我开始根据我的 SO 研究尝试各种步骤(例如
java.lang.ProcessHandle - 编译错误Project Structure
设置)。
%JAVA_HOME%
指向与AS设置相同的位置:
C:\Program Files\Android\Android Studio\jbr
:
Module Settings
:我确保项目中的模块设置也设置为使用 Java 17。
System.out.println("JUnit5's Java Runtime Version: " + System.getProperty("java.version"));
知道我可能错过了什么吗?
java.lang
包的 Android 文档 不包含
ProcessHandle
作为该包中的接口。 ProcessHandle
在 Android 上根本不可用。另请参阅本节,其中写着: 我可以在 Java 或 Kotlin 源代码中使用哪些 Java API?
维基百科大概,Android应用程序可以使用JDK中定义的一些API,但是 不是全部。 Android SDK 定义了许多 Java 的实现 库函数作为其可用 API 的一部分。
ProcessHandle
不可用,因为 Android 应用程序是沙盒的,并且设计为只能对操作系统进行有限的访问。 Android 有自己的 API 来处理进程,例如
android.os.Process
和
android.app.ActivityManager.RunningAppProcessInfo
。