在Java中,需要类依赖来执行源代码文件的编译。但是,在没有引用的情况下运行已编译的文件将给出
ClassNotFoundException
。考虑以下几点:
import de.robv.android.xposed.XposedBridge;
................
................
private boolean testUseClassDirectly() {
try {
XposedBridge.log("blah");
return true;
}
catch(Throwable unused_ex) {
return false;
}
}
在这种情况下,仅当找到
de.robv.android.xposed.XposedBridge
引用时才会编译。我能够在 java、类或 jar 文件中提供参考以用于编译目的。但是,生成异常并处理它是应用程序设计的正常流程,它执行某些检查并直接使用该类,或者如果不基于这些检查,则以某种方式继续。
如何在 Android 环境(最好是 Android studio)中构建应用程序而不在 APK 文件中包含类依赖项?
不幸的是,没有简单的方法可以排除仅一个第三方类。尽管如此,您可以排除整个依赖性。
如果您希望库在编译时存在但不在运行时存在,请将其与
compileOnly
而不是 implementation
包含在您的 build.gradle
中。
如果您想制作 2 个不同的版本(一个带有库,另一个没有库),您可以为其创建
buildType
。有关更多详细信息,您可以参阅有关构建变体的文档。