我正在尝试将facebook整合到我的应用中。我使用从facebook下载的facebook示例应用作为参考(也生成了appId
以及developer.facebook上的所有此过程)我很懒,所以我不想查看facebook sdk的所有代码。简单来说,我只是在我的应用程序中添加com_android_facebook
库项目,并且还复制我的facebook示例应用程序中的所有类应用程序除了Example.java
现在我修改MyActivity类看起来像Example.java类,意味着MyActivity现在拥有Example类的所有代码以及我的主Activity。
我将我的应用程序的布局更改为
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textSize="22px"
android:textColor="#ff00ff"
android:gravity="center"
>
</TextView>
<com.android.facebook.LoginButton
android:id="@+id/login"
android:src="@drawable/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
/>
<Button android:id="@+id/uploadButton"
android:text="@string/upload"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:layout_margin="20dp"
/>
<Button android:id="@+id/requestButton"
android:text="@string/request"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:layout_margin="20dp"
/>
<Button android:id="@+id/postButton"
android:text="@string/post"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:layout_margin="20dp"
/>
<Button android:id="@+id/deletePostButton"
android:text="@string/delete"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:layout_margin="20dp"
/>
</RelativeLayout>
现在,当我运行我的应用程序时,我遇到了错误
10-14 00:58:37.786: ERROR/AndroidRuntime(3971): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.myapp/com.android.myapp.MyActivity}: android.view.InflateException: Binary XML file line #21: Error inflating class com.android.facebook.LoginButton
10-14 00:58:37.786: ERROR/AndroidRuntime(3971): Caused by: android.view.InflateException: Binary XML file line #21: Error inflating class com.android.facebook.LoginButton
10-14 00:58:37.786: ERROR/AndroidRuntime(3971): Caused by: java.lang.ClassNotFoundException: com.android.facebook.LoginButton in loader dalvik.system.PathClassLoader@44c06850
任何帮助,建议都是最受欢迎的......
答案 0 :(得分:4)
我也面临同样的问题。我更改了main.xml:
<com.facebook.android.LoginButton
android:id="@+id/login"
android:src="@drawable/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
/>
to(当前包是com.facebook.fbtest_simple):
<com.facebook.fbtest_simple.LoginButton
android:id="@+id/login"
android:src="@drawable/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
/>
由于LoginButton不是FB标准库的一部分。
答案 1 :(得分:4)
从Facebook SDK的3.0版本开始,LoginButton现在作为SDK的一部分提供 com.facebook.widget.LoginButton
请参阅https://developers.facebook.com/docs/reference/android/3.0/LoginButton
请注意,Facebook自己的升级说明here引用了错误的包,LoginButton必须声明为com.facebook.widget.LoginButton,而不是com.facebook.LoginButton
答案 2 :(得分:2)
该SDK的主要来源中没有LoginButton
它仅在示例代码中可用,因此无法加载不可用的类(ClassNotFoundException
)......
答案 3 :(得分:0)
简单的一个:
10-14 00:58:37.786: ERROR/AndroidRuntime(3971): Caused by: java.lang.ClassNotFoundException: com.android.facebook.LoginButton in loader dalvik.system.PathClassLoader@44c06850
在facebook src中寻找,你可以转到path:
AsyncFacebookRunner.java,Facebook.java,FacebookError.java, FbDialog.java,Util.java
..看到没有像LoginButton这样的东西,那么我可以认为你正在使用一个旧的教程或类似的东西。
答案 4 :(得分:0)
初始化Facebook SDK对我有用。
var isScroll = true;
$(document).scroll(function(e) {
if ($(document).scrollTop() > 250 && isScroll) {
isScroll = false;
$('html body').animate({
scrollTop: $("#targeted-element").offset().top
}, 650);
}else if($(document).scrollTop() < 250){
isScroll = true;
}
});