适用于Android的OData4j:XmlInputFactory的ClassNotFoundException

时间:2014-07-26 17:24:11

标签: java android odata

这是我第一次尝试学习Java,所以我想我会将我的Windows Phone应用程序移植到Android上开始学习。我正在尝试使用OData4j 0.7 jar库来调用我现有的WCF数据服务(在我的WP应用程序/浏览器中工作),但是我收到以下错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.xml.stream.XMLInputFactory" on path: DexPathList[[zip file "/data/app/myfirstapp.blazemonkey.com.myfirstapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/
07-26 13:02:41.452    3736-3736/myfirstapp.blazemonkey.com.myfirstapp E/ProviderFactory﹕ The provider class, class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General, could not be instantiated. Processing will continue but the class will not be utilized
java.lang.TypeNotPresentException: Type javax.xml.stream.XMLInputFactory not present
...

每次我运行此代码时:

ODataConsumer consumer = ODataJerseyConsumer.create(serviceUrl);

我已经把头发拉了很长时间,所以希望有人可以指出我正确的方向!我已经添加了users-permission标记:

<uses-permission android:name="android.permission.INTERNET"/>

所以这不应该是问题。

提前多多感谢!!

1 个答案:

答案 0 :(得分:1)

javax.xml.stream包不是Android的一部分。您无法在Android应用中使用它或任何其他需要它的库。这就是您收到错误的原因。

根据OData4j描述,它也可以与StAX解析器一起使用,它存在于Android中。您应该查看他们的official Android example以了解如何在Android中使用StAX解析器来使用此库。希望这会有所帮助。