gpt4 book ai didi

java - 使用 JDK 中的类而不是 android SDK (ADK)

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:15 26 4
gpt4 key购买 nike

是否可以使用 JDK (1.7) 中的类来代替 Android SDK(ADK、API 23)?

我需要使用的一个类存在于 Android SDK (API 23) JDK (1.7) 中。默认情况下使用来自 ADK 的类。但是我想使用 JDK 中的类。

在我的例子中,我想使用 DatatypeFactory.newInstance(factoryClassName, classLoader),它位于 JDK 和 ADK 的 javax.xml.datatype 包中.由于实现上的差异,我想使用 JDK 中的类而不是 ADK。

如何使用 JDK 中的类而不是 ADK 中的类?

最佳答案

你不能那样做。无论如何都不能简单地切换导入语句。您在 Android 作为其目标平台上运行的代码将无法访问 Java SDK 类,因此代码将无法加载这些类,或者它将加载具有完全相同的完全限定名称的类的 Android 版本(这是您的情况) .

如果您想使用 Java SDK 中的特定实现,则必须在目标平台上提供它。

您有 2 个选项,但都不好:

使用 Java SDK 作为库

通过将 rt.jar(~50MB) 引入您的项目。然而,这会产生许多潜在的问题,因为 Android SDK 和 Java SDK 镜像某些包和类,您最终可能会加载错误的版本。

引入源

第二种选择——只是稍微好一点——是将该类的源代码引入你的项目,前提是它的所有依赖项都可以被 Android SDK 满足,或者也可以作为源代码引入。这会很痛苦……

然而,正确的解决方案是

拥抱生态系统

我不知道您的具体要求是什么,但我敢打赌,Android 对此类的实现与 Java 非常接近。如果您无法通过使用 Android SDK 实现某些功能,请尝试在此处询问该特定问题,或搜索可以实现您需要的第 3 方库。也许解决方案比您想象的要简单。

关于java - 使用 JDK 中的类而不是 android SDK (ADK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com