无法解析 Android Studio 上的符号“ProcessHandle”

问题描述 投票:0回答:1

由于某些奇怪的原因,我无法在我的 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 - 编译错误

Intellij 无法解析导入时的符号):

    在 Android Studio (AS) 中验证 Java 版本:确保 Android Studio 正确配置为使用 Java 17(通过
  1. Project Structure

    设置)。

    
    

  2. 我什至确保
  3. %JAVA_HOME%

    指向与AS设置相同的位置:

    C:\Program Files\Android\Android Studio\jbr
    enter image description here
    
    

  4. 已检查
  5. Module Settings

    :我确保项目中的模块设置也设置为使用 Java 17。

    
    

Module Settings using Java 17

我什至放入了代码
    System.out.println("JUnit5's Java Runtime Version: " + System.getProperty("java.version"));
  1. ,该代码实际上在运行时显示实际使用的 Java 版本是 17。
    使缓存失效并重新启动。
这些措施都没有帮助。

知道我可能错过了什么吗?

java android-studio java-8 java-9 processhandle
1个回答
0
投票
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

© www.soinside.com 2019 - 2024. All rights reserved.