FBconnect is not working in android :(
I have follow the step mentioned in http://code.google.com/p/fbconnect-android/wiki/Setup
But it is giving error on project build
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
The problem is caused because the API project is java project and not an android project.
Do the following to solve this: 1. create a new Android project 2. mark it a as library (project properties->android->Is Library) 3. copy the API src contents into your new project 4. in the sample project, add the new project as library (project properties->android->add) 5. remove from the sample project references to the old API project (project properties->java build path)
Notes: 1. if you get a blank page when you run the sample project, its because you need to set kApiKey and kApiSecret parameters in MainActivity 2. if try to view main.xml in "Graphical Layout" and you get java.lang.NullPointerException, go to FBLoginButton.java-> private Drawable buttonImage() and change the first line from
if (_session.isConnected())
to
if (_session!=null && _session.isConnected())
精彩评论