是否有可能使用JDK(1.7)中的类而不是Android SDK(ADK,API 23)?
我需要使用的课程存在于JDK(1.7)中的Android SDK(API 23)和中。默认情况下,使用ADK中的类。但是我想使用JDK中的类。
在我的情况下,我想使用放在JDK和ADK中的包DatatypeFactory.newInstance(factoryClassName, classLoader)
中的javax.xml.datatype
。
由于实现上的差异,我想使用JDK中的类而不是ADK。
如何使用JDK中的类而不是ADK中的类?
答案 0 :(得分:3)
你做不到。不过只是简单地切换import语句。 您在Android上作为其目标平台运行的代码将无法访问Java SDK类,因此代码将无法加载类,或者它将使用完全相同的完全限定名称加载类的Android版本(这是您的情况) 。
如果要使用Java SDK中的特定实现,则必须在目标平台上使用它。
您有2个选项,但两者都不好:
rt.jar
(~50MB)带入您的项目。然而,这会产生许多潜在的问题,因为Android SDK和Java SDK镜像了一些包和类,最终可能会加载错误的版本。
或
然而,正确的解决方案是
我不知道你的具体要求是什么,但是我敢打赌Android的这个类的实现与Java的实现非常接近。如果您无法通过Android SDK实现某些目标,请尝试在此处询问该特定问题,或者搜索可以实现您需要的第三方库。也许解决方案比你想象的要容易。