FB的登錄SDK是基於AS(android studio)製作的 .aar 包
在eclipse平臺大家都用.jar包接SDK
這樣兩種方式接SDK差異比較大
我這裏說一下用eclipse接facebook的登錄包
下載到SDK解壓後得到 facebook-android-sdk-4.26.0.aar 這個包,我們也只用這個包
第一步:將AAR文件後綴名改爲ZIP並解壓
第二步:在解壓得到的目錄裏創建一個libs文件夾,然後將classes.jar
文件和jni
文件夾下的所有文件移到libs文件夾下
第三步:將proguard.txt
文件的內容拷貝到你的項目的proguard-project.txt
文件中
第四步:在解壓得到的目錄裏創建project.properties
文件,內容如下:
target=android-22 android.library=true
第五步:刪除aapt
和jni
文件夾以及R.txt
和proguard.txt
文件
至此一個Eclipse Library項目已經構建完成了,接下來只需打開Eclipse導入項目並在你的項目中配置引用這個項目即可
1到5步 由 浮游大蝦 提供
鏈接:http://www.jianshu.com/p/ccf306e08d5b
這樣還不夠 你是編譯不過去的!!!
需要修改,如下:
1.
如果 AndroidManifest.xml 文件裏報錯
<provider android:name="com.facebook.internal.FacebookInitProvider" android:authorities="${applicationId}.FacebookInitProvider" android:exported="false" />
這個可以刪除掉!
2.
如果 facebook-android-sdk-4.26.0.aar\res\values\values.xml 文件裏報錯
<style name="com_facebook_activity_theme" parent="@style/Theme.AppCompat.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> </style> <style name="com_facebook_auth_dialog" parent="@style/Theme.AppCompat.Dialog"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style>
@style/Theme.AppCompat.NoActionBar @style/Theme.AppCompat.Dialog 這倆 都可以用 @android:style/Theme.NoTitleBar 代替
3.
如果 facebook-android-sdk-4.26.0.aar\res\layout\com_facebook_device_auth_dialog_fragment.xml
還有 com_facebook_smart_device_dialog_fragment.xml 這個文件,這倆類似
這倆文件裏報錯
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" app:cardBackgroundColor="@android:color/transparent" app:cardElevation="10dp">
這句
xmlns:app=" 需要修改成 xmlns:app=" 注意 com.hytc.zjsg 是我的遊戲的包名,也就是 你的遊戲工程的 AndroidManifest.xml 文件裏的package的屬性值 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hytc.zjsg"
4.還沒完,如果下面這句報錯
LoginManager.getInstance().logInWithReadPermissions( App_instance, Arrays.asList("public_profile", "user_friends"));
需要添加 android-support-v4.jar 這個JAR包到你的工程的 libs裏
android-support-v4.jar這個包在 adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v4 這個目錄下,這是谷歌SDK啊!應該都有吧!