Login error in LoginButton.java - problem with getting started with facebook sdk on Android

I am having problems with facebook sdk. I use Intellij Idea and I managed to add sdk to the project and at least compile it.

So, I start with an empty project with one action and add LoginButton so that my Layout.xml looks like this:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, MainActivity" /> <com.facebook.widget.LoginButton android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

First problem: I get this message in the user interface preview window:

 android.content.res.Resources$NotFoundException: Could not resolve resource value: 0x7F060006. at android.content.res.BridgeResources.throwException(BridgeResources.java:693) at android.content.res.BridgeResources.getColor(BridgeResources.java:185) at com.facebook.widget.LoginButton.<init>(LoginButton.java:237) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:375) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:100) at com.android.tools.idea.rendering.ProjectCallback.loadView(ProjectCallback.java:169) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:727) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:373) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332) at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:564) at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:553) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:553) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:626) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:575) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:81) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6$1.run(AndroidLayoutPreviewToolWindowManager.java:521) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6.run(AndroidLayoutPreviewToolWindowManager.java:516) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) 

So it looks like there is a problem with the R file, but in any case, it is still compiling.

As soon as the application runs on the emulator, it crashes with this stack:

 05-02 19:15:35.073 2023-2023/com.Jam D/dalvikvm﹕ Not late-enabling CheckJNI (already on) 05-02 19:15:35.453 2023-2029/com.Jam D/dalvikvm﹕ Debugger has detached; object registry had 1 entries 05-02 19:15:36.014 2023-2023/com.Jam D/﹕ HostConnection::get() New Host Connection established 0xb91d7290, tid 2023 05-02 19:15:36.514 2023-2023/com.Jam W/EGL_emulation﹕ eglSurfaceAttrib not implemented 05-02 19:15:36.564 2023-2023/com.Jam D/OpenGLRenderer﹕ Enabling debug mode 0 05-02 19:15:36.644 2023-2036/com.Jam W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0xb1d8cb20) 05-02 19:15:36.644 2023-2036/com.Jam E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 Process: com.Jam, PID: 2023 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) Caused by: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:911) at com.facebook.internal.Utility.queryAppSettings(Utility.java:372) at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:667) at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:664) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237)            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)            at java.lang.Thread.run(Thread.java:841) 

I'm new to Android, so I have no idea what to do. I mean that my code will throw all kinds of exceptions: p, but I have no hint, because for some reason the facebook SDK code would throw a null exception.

+6
source share
2 answers

I also had the same problem:

I set my application id as follows:

 <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="MY_APP_ID"/> 

but what it was supposed to be:

 <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 

I never thought that this could create such an error. I think this should be a warning in their textbook!

Give it a try. If this is not a solution, it should be associated with the application identifier. You may not have added keyhash to your application. Follow each step in this tutorial and don't skip any.

If it still doesn't solve the problem, compare facebook related to facebook samples packed with SDK.

Good luck

+8
source

I encountered the same problem a while ago, and for me the problem was related to the wrong metadata name. Make sure you understand correctly.

 <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 

instead

 <meta-data android:name="com.facebook.sdk.Application" android:value="@string/facebook_app_id"/> 
0
source

All Articles