首页 > 解决方案 > Android Studio 无法从暴露的 SDK 中找到隐藏的属性

问题描述

我想在我的项目中使用一些隐藏的属性,如果我用暴露的属性替换默认值,我就可以做到,$SDK_PATH/platforms/android-27/android.jar但是android.jar每次我想处理这个项目时,我都需要手动替换 android.jar 文件另一个,然后将其替换为原始的。

我发现有一种方法可以android.jar通过 gradle(来源例如:here)将公开的文件添加到其依赖项中。所以我做到了:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    compileOnly files('platform/android-27/android.jar')
    implementation 'com.android.support:appcompat-v7:27.1.1'
}

我可以做 gradle 同步,gradle 可以看到文件,但构建项目失败,error: cannot find symbol variable INSTALL_REPLACE_EXISTING.

我在以下代码中使用变量(实际上是常量)的代码:

File file = new File(apkPath);
pm.installPackage(Uri.fromFile(file), observer, PackageManager.INSTALL_REPLACE_EXISTING, "com.example.pminstaller");

请问,我还应该怎么做才能让它工作?

编辑: 我对这个问题有所了解。我可以找到隐藏在默认 SDK 中的 EthernetManager 之类的类,但我不能使用默认 SDK 中未隐藏的类中的隐藏方法。添加带有隐藏 API 的 android.jar 文件后,该项目有两个具有相同包名的类,它选择默认的一个。

如何强制 gradle 选择隐藏的?

标签: javaandroidandroid-studiogradle

解决方案


推荐阅读