error: cannot find symbol import android.os.SystemProperties;

背景:AS独立编译系统工程应用,使用了hide接口,导致编译不过。

尽管使用了framework.jar依赖。依然编译不过,导致各种类找不到。

例如:

/SettingsLib/src/main/java/com/android/settingslib/location/RecentLocationApps.java:106: error: cannot find symbol
            AppOpsManager.PackageOps ops) {
                         ^
  symbol:   class PackageOps
  location: class AppOpsManager

解决方案:

加上下段代码解决(搭配openJDK 8)。

android{
    gradle.projectsEvaluated{
        tasks.withType(JavaCompile){
            Set<File> fileSet = options.bootstrapClasspath.getFiles()
            List<File> newFileList = new ArrayList<>();
            newFileList.add(new File("../commonLib/framework.jar"))
            newFileList.addAll(fileSet)
            options.bootstrapClasspath = files(
                    newFileList.toArray()
            )
        }
    }
}

从错误信息来看,您的 Java 程序存在两个问题: ### 第一个问题: ``` error: cannot find symbol int n=in.nextInt; symbol: variable nextInt location: variable in of type Scanner ``` **原因分析**: `in.nextInt` 报错表明 `nextInt` 被识别为无效的变量或方法名。这通常是因为您可能将 `in` 定义为了一个普通的变量而非 `Scanner` 类型的对象。 #### 解决办法: 确保正确创建了一个 `Scanner` 对象,并且使用了正确的语法去读取输入数据。 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { // 创建 Scanner 实例 Scanner in = new Scanner(System.in); System.out.println("请输入整数:"); // 使用 nextInt() 方法获取用户输入的一个整数值 int n = in.nextInt(); System.out.println("你输入的是:" + n); // 关闭 scanner 避免资源泄露 in.close(); } } ``` ### 第二个问题: ``` error: cannot find symbol scan.close(); symbol: variable scan location: class Main ``` **原因分析**: 这里报错的原因可能是程序内并没有定义名为 `scan` 的对象却尝试调用了它的 `.close()` 方法。检查是否拼写有误或将不同命名混用。 #### 解决办法: 确认关闭的操作符作用于实际存在的、已实例化的scanner对象上。 如果前面使用的扫描仪命名为“in”,那么应该改为: ```java in.close(); // 如果声明的是 Scanner in... ``` 最后,请保证所有涉及到标准库的部分都按照官方文档指引完成导入和初始化操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值