我正在使用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
你知道是什么原因以及如何解决它吗?
非常感谢您的帮助。
阿达
答案 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
什么过程!!