Java 在我的应用程序中将SDK类替换为JAR中的类

Java 在我的应用程序中将SDK类替换为JAR中的类,java,android,classloader,Java,Android,Classloader,在我的项目中,我需要从libs文件夹的jar文件中使用json.org,而不是使用androidsdkjson.org类 我已经设置了Eclipse,现在它更喜欢jar中的json.org类,而不是Android sdk。但当我在设备上运行我的应用程序时,它使用sdk json.org类 我认为,我可以使用自定义类加载器从jar手动加载json.org类 有可能吗?或者是否存在使用lib类而不是sdk类的其他方法 如果您想使用特定的jar而不是android SDK中现有的jar,可以在ecli

在我的项目中,我需要从libs文件夹的jar文件中使用json.org,而不是使用androidsdkjson.org类

我已经设置了Eclipse,现在它更喜欢jar中的json.org类,而不是Android sdk。但当我在设备上运行我的应用程序时,它使用sdk json.org类

我认为,我可以使用自定义类加载器从jar手动加载json.org类

有可能吗?或者是否存在使用lib类而不是sdk类的其他方法

  • 如果您想使用特定的jar而不是android SDK中现有的jar,可以在eclipse中设置优先级(右键单击->构建路径),然后指定优先级
  • 如果您想在类装入器中装入jar,也可以使用类URL
  • URLClassLoader jsonUrl=新的URLClassLoader(jsonJar.toURL(),this.getClass().getClassLoader()); Class classToLoad=Class.forName(“com.MyClass”,true,jsonUrl); 方法Method=classToLoad.getDeclaredMethod(“myMethod”); 对象实例=classToLoad.newInstance();对象结果=method.invoke(实例)


    为什么需要从jar加载类?SDK类有什么问题?如果要加载的类执行不同的操作,则应重命名它们。还有其他问题吗?Clyde,SDK json.org太旧了。我需要新版本。看看杰克逊-。它比json.org.Clyde好得多,我知道存在json.org的替代品,但我使用它是因为它完全满足了我的需要。我已经做了1个,但设备仍然使用SDK类而不是JAR类。正如Clyde所说,通常两个类不能在同一个包中,第二个类的名称通常应该不同。但是不管怎样,试着做第二个。布哈内夫,我没有通往jar的路。我把它放在libs文件夹中,并编译成apk文件。我认为,这只适用于文件系统中的JAR。