FBconnect在android中不起作用:(

时间:2010-08-07 11:20:49

标签: android facebook fbconnect

我已按照http://code.google.com/p/fbconnect-android/wiki/Setup

中提到的步骤操作

但它在项目构建上给出了错误

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/codecarpet/fbconnect/FBLoginDialog$FBRequestDelegateImpl;
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.processClass(Main.java:299)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:276)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:228)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.processOne(Main.java:245)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.dx.command.dexer.Main.run(Main.java:139)
[2010-08-07 16:46:13 - fbconnect-sample]    at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
[2010-08-07 16:46:13 - fbconnect-sample]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2010-08-07 16:46:13 - fbconnect-sample]    at java.lang.reflect.Method.invoke(Method.java:616)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.ide.eclipse.adt.internal.sdk.DexWrapper.run(Unknown Source)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.ide.eclipse.adt.internal.build.ApkBuilder.executeDx(Unknown Source)
[2010-08-07 16:46:13 - fbconnect-sample]    at com.android.ide.eclipse.adt.internal.build.ApkBuilder.build(Unknown Source)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:627)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
[2010-08-07 16:46:13 - fbconnect-sample]    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
[2010-08-07 16:46:13 - fbconnect-sample]    at     org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
[2010-08-07 16:46:13 - fbconnect-sample] 40 errors; aborting
[2010-08-07 16:46:13 - fbconnect-sample] Conversion to Dalvik format failed with error 1

1 个答案:

答案 0 :(得分:0)

问题是因为API项目是java项目而不是android项目。

执行以下操作来解决此问题: 1.创建一个新的Android项目 2.将其标记为库(项目属性 - > android->是库) 3.将API src内容复制到新项目中 4.在示例项目中,将新项目添加为库(项目属性 - > android-> add) 5.从示例项目中删除对旧API项目的引用(项目属性 - > java构建路径)

注意: 1.如果在运行示例项目时得到空白页,则因为需要在MainActivity中设置kApiKey和kApiSecret参数 2.如果尝试在“Graphical Layout”中查看main.xml并得到java.lang.NullPointerException,请转到FBLoginButton.java->私有Drawable buttonImage()并从

更改第一行
if (_session.isConnected()) 

if (_session!=null && _session.isConnected())