Android ADT 21 NoClassDefFoundError

时间:2013-04-04 21:10:22

标签: android salesforce

我正在使用Salesforce SOAP API来执行简单的登录和注销程序。我按照http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_login.htm处的示例代码进行操作。

此代码在桌面上运行正常。

然后,我根据我的WSDL文件和sforce-client.jar将生成的jar文件(wsc.jar)移植到Android应用程序。

然而,当我运行它时,我收到以下错误,

  

找不到类'com.sforce.soap.enterprise.EnterpriseConnection'

从方法salesforceAccess.SalesforceAccess.login

引用

你知道是什么原因以及如何解决它吗?

非常感谢您的帮助。

阿达

3 个答案:

答案 0 :(得分:2)

您是否将jar文件添加到'libs'目录并检查属性下的“Order and Export”复选框?

答案 1 :(得分:0)

如果您遵循从WSDL构建jar的默认指令,那么您需要将生成的jar和用于生成jar的wsc.jar添加到android libs文件夹中。从错误中听起来你错过了用于生成jar的wsc.jar。 或者,您可以在生成jar时将-Dstandalone-jar=true设置为一个选项,然后一切都将在该生成的jar中。

答案 2 :(得分:0)

最后,我解决了这个问题!

步骤是, 1.从github.com/forcedotcom/wsc构建正确的wsc-xxx.jar文件(谢谢你,Superfell!) 2.使用上面的wsc-xxx.jar从wsdl生成jar文件。注意:使用jdk1.6生成目标1.6 jar。 (或者与Android SDK级别相匹配的任何东西!!) 3.将罐子导入Android项目。

我被卡住了因为我使用jdk1.7来生成jar文件。但是,就像这个线程(Android emulator crash: "Dx bad class file magic" / ClassNotFoundException on startup?)所说的那样,Android SDK级别是1.6(我试图改为1.7,项目将无法编译)。因此,wsdl生成的jar文件将无法打包!

日食和ADT没有给我任何警告或错误告诉我。我必须从命令行构建Android项目(请参阅http://randomsamples.info/blog/phil/android-adt-2101-javalangnoclassdeffounderror-rdimen)并注意到警告

[dx] trouble processing:
       [dx] bad class file magic (cafebabe) or version (0033.0000)
       [dx] ...while parsing com/sforce/soap/enterprise/EnterpriseConnection.cla
ss
       [dx] ...while processing com/sforce/soap/enterprise/EnterpriseConnection. class

什么过程!!