LoginButton.java错误 - 麻烦开始对Android的Facebook的SDK [英] LoginButton.java error - trouble getting started with facebook sdk on Android

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

问题描述

我有facebook的SDK的麻烦。我用的IntelliJ IDEA,我设法将SDK添加到项目中,并至少得到它编译。<​​/ P>

于是,我开始与一个活动的空白项目,我添加LoginButton让自己Layout.xml是这样的:

 &LT; XML版本=1.0编码=UTF-8&GT?;

    &LT; LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
                  机器人:方向=垂直
                  机器人:layout_width =FILL_PARENT
                  机器人:layout_height =FILL_PARENT
        &GT;
    &LT;的TextView
            机器人:layout_width =FILL_PARENT
            机器人:layout_height =WRAP_CONTENT
            机器人:文字=世界您好,MainActivity
            /&GT;

    &LT; com.facebook.widget.LoginButton
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT/&GT;
&LT; / LinearLayout中&GT;
 

第一个问题是,我得到这个消息在UI preVIEW窗口:

  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&LT; INIT&GT;(LoginButton.java:237)
    在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
    在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    在java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    在org.jetbrains.android.ui preview.ViewLoader.createNewInstance(ViewLoader.java:375)
    在org.jetbrains.android.ui preview.ViewLoader.loadView(ViewLoader.java:100)
    在com.android.tools.idea.rendering.ProjectCallback.loadView(ProjectCallback.java:169)
    在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
    在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
    在android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)
    在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    在android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    在android.view.LayoutInflater.inflate(LayoutInflater.java:373)
    在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399)
    在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336)
    在com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
    在com.android.tools.idea.rendering.RenderService $ 3.compute(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.ui$p$pview.AndroidLayout$p$pviewToolWindowManager.doRender(AndroidLayout$p$pviewToolWindowManager.java:575)
    在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager.access$1700(AndroidLayout$p$pviewToolWindowManager.java:81)
    在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager$6$1.run(AndroidLayout$p$pviewToolWindowManager.java:521)
    在com.intellij.openapi.progress.impl.ProgressManagerImpl $ 2.运行(ProgressManagerImpl.java:178)
    在com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
    在com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
    在com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
    在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager$6.run(AndroidLayout$p$pviewToolWindowManager.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.运行(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 $请求$ 1.运行(Alarm.java:327)
    在java.util.concurrent.Executors $ RunnableAdapter.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年/ com.Jam D / dalvikvm:不晚启用CheckJNI(已上)
05-02 19:15:35.453 2023至2029年/ com.Jam D / dalvikvm:调试器分离;对象注册了1项
05-02 19:15:36.014 2023至2023年/ com.Jam D /:HostConnection ::得到()新主机连接建立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:主题ID = 11:线程退出与未捕获的异常(组= 0xb1d8cb20)
05-02 19:15:36.644 2023年至2036年/ com.Jam E / AndroidRuntime:致命异常:AsyncTask的#1
    工艺:com.Jam,PID:2023
    java.lang.RuntimeException的:执行doInBackground时出错()
            在android.os.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:242)
            在android.os.AsyncTask $ SerialExecutor $ 1.运行(AsyncTask.java: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)
     显示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)
            在com.facebook.widget.LoginButton $ 1.doInBackground(LoginButton.java:664)
            在android.os.AsyncTask $ 2.call(AsyncTask.java:288)
            在java.util.concurrent.FutureTask.run(FutureTask.java:237)
在android.os.AsyncTask $ SerialExecutor $ 1.运行(AsyncTask.java: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)
 

我是新来的Andr​​oid,所以我不知道该怎么做。我的意思是,我的code会抛出各种异常:对,但我不知道我为什么Facebook的SDK code会抛出一个空异常

解决方案

我也面临着同样的问题:

我把我的应用程序ID为这样的:

 &LT;元数据的android:NAME =com.facebook.sdk.ApplicationId机器人:值=MY_APP_ID/&GT;
 

但它应该是:

 &LT;元数据的android:NAME =com.facebook.sdk.ApplicationId机器人:值=@字符串/ APP_ID/&GT;
 

我从来没有想过这可能会导致这样的错误。他们应该把这个作为他们的教程中,我想警告!

试试看吧。如果这不是解决办法,那么它应该是一些相关的应用程序ID。你可能没有添加keyhash您的应用程序。按照本教程,不跳过任何。

如果仍不能解决问题比较facebook的相关与挤满了SDK facebook的样本。

祝您好运!

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/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天全站免登陆