LoginButton.java错误 - 在Android上开始使用Facebook sdk时遇到麻烦 [英] LoginButton.java error - trouble getting started with facebook sdk on Android

查看:80
本文介绍了LoginButton.java错误 - 在Android上开始使用Facebook sdk时遇到麻烦的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在facebook sdk上遇到麻烦。我使用Intellij Idea,我设法将sdk添加到项目中,至少让它编译。<​​/ p>

所以我从一个单一的活动开始一个空白的项目,添加一个LoginButton,使我的Layout.xml看起来像这样:

 <?xml version =1.0encoding =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>

第一个问题是,我在UI预览窗口中收到此消息:

  android.content.res.Resources $ NotFoundException:无法解析资源值:0x7F060006。 
在android.content.res.BridgeResources.throwException(BridgeResources.java:693)
在android.content.res.BridgeResources.getColor(BridgeResources.java:185)
在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)
在java.lang.reflect.Constructor.newInstance(Constructor.java:526)
在org.jetbrains。 android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:375)
在org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:100)
在com.android.tools.idea。 render.ProjectCallback.loadView(ProjectCallback.java:169)
在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
在androi d.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
在android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)
在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:在Android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
$ android $。 .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。计算(RenderService.java:564)
在com.android.tools.idea.rendering.RenderService $ 3.compute(RenderService.java:553)
在com.intellij.openapi.application.impl.ApplicationImpl .runReadAction (ApplicationImpl.java:932)
在com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:553)
在com.android.tools.idea.rendering.RenderService.render (RenderService.java:626)
在org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:575)
在org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access $ 1700(AndroidLayoutPreviewToolWindowManager。 java:81)
在org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager $ 6 $ 1.run(AndroidLayoutPreviewToolWindowManager.java:521)
在com.intellij.openapi.progress.impl.ProgressManagerImpl $ 2.run(ProgressManagerImpl .java:178)
在com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
在com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java :212)
在com.intell ij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
在org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager $ 6.run(AndroidLayoutPreviewToolWindowManager.java:516)
在com.intellij .util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
在com.intellij .util.ui.update.MergingUpdateQueue $ 2.run(MergingUpdateQueue.java:254)
在com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
在com。 intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
在com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
在com。 intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
在com.intellij.util.Alarm $ Request $ 1.run(Alarm.java:327)
在java.util.concurrent .Executors $ RunnableAda pter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1145)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:724)

所以看起来R文件有问题,但无论如何,它仍然编译。



一旦应用程序在仿真器上运行,它就会崩溃:

  05- 02 19:15:35.073 2023-2023 / com.Jam D / dalvikvm:尚未启用的CheckJNI(已经开启)
05-02 19:15:35.453 2023-2029 / com.Jam D / dalvikvm:Debugger已经脱离对象注册表有1个条目
05-02 19:15:36.014 2023-2023 / com.Jam D /:HostConnection :: get()新建主机连接建立0xb91d7290,tid 2023
05-02 19: 15:36.514 2023-2023 / com.Jam W / EGL_emulation:eglSurfaceAttrib未实现
05-02 19:15:36.564 2023-2023 / com.Jam D / OpenGLRenderer:启用调试模式0
05- 02 19:15:36.644 2023-2036 / com.Jam W / dalvikvm:threadid = 11:线程与未捕获的异常退出(group = 0xb1d8cb20)
05-02 19:15:36.644 2023-2036 / com.Jam E / AndroidRuntime:FATAL EXCEPTION:AsyncTask#1
进程:com.Jam,PID:2023
java.lang.RuntimeException:在android.os上执行doInBackground()
时发生错误。 AsyncTask $ 3.done(AsyncTask.java:300)
在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
在java.util.concurrent.FutureTask.setException(FutureTask.java :222)
在java.util.concurrent.FutureTask.run(FutureTask。 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)$ b $($) b java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)
在java.lang.Thread.run(Thread.java:841)
引起的:java.lang。 NullPointerException
在java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:911)
在com.facebook.internal.Utility.queryAppSettings(Utility.java:372)
在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)
在java.util.concurrent.FutureTask.run(FutureTask.java:237)
在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.jav a:231)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)
在java.lang.Thread.run(Thread.java:841)

我是新来的Android,所以我不知道该怎么做。我的意思是,我的代码会抛出各种异常:p但是我没有任何线索,因为我为什么facebook SDK代码会抛出一个空异常。

解决方案

我也面临着同样的问题:



我把我的应用程序标识为:

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

但应该是什么:

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

我从来没有想过这可能会造成这样的错误。他们应该把它作为警告在他的教程我猜!



尝试一下。如果这不是解决方案,那么它应该是与应用程序ID相关的东西。您可能没有在应用程序中添加keyhash。按照教程中的每一步,不要跳过任何。



如果仍然没有解决问题,与Facebook相关的Facebook样本与SDK打包相关。



祝你好运!


i am having trouble with the facebook sdk. I use Intellij Idea, and I managed to add the sdk to the project and at least getting it compiled.

So I start with a blank project with a single activity and i add a 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>

The first problem is, I get this message at the UI 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 trouble with the R file, but, anyways, it still compiles.

As soon as the app 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 am new to Android so I have no clue what to do. I mean, my code will throw all sorts of exceptions :p but I have no clue as I why facebook SDK code would throw a null exception.

解决方案

I was also facing same problem:

I was putting my app id as this:

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

but what it should have been:

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

I never thought this could create such an error. They should put this as warning in their tutorial I guess!

Give it a try. If this is not the solution then it should be something related to App ID. You might not have added keyhash to your app. Follow each step in this tutorial and don't skip any.

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

Good Luck!

这篇关于LoginButton.java错误 - 在Android上开始使用Facebook sdk时遇到麻烦的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆