2016-05-15 135 views
1

我想將cocos2dx v3.9中的facebook集成到我的遊戲中,但我遇到了問題。請問你能幫幫我嗎? 所以讓我描述我的行動一步一步:cocos2dx v3.9與facebook sdk集成

1)我已經下載sdkbox from sdkbox official site

2)我已經創造了新的應用on dev facebook

注: - 創建基本設置 - 我有(綠點近乎命名我的應用程序) - 在設置點擊添加平臺 - Android - 下載openssl並在終端執行命令: keytool -exportcert -alias androiddebugkey -keystore%HOMEPATH%.android \ deb ug.keystore | openssl sha1 -binary | openssl base64 如此複製緩衝區中的符號序列 - 打開瀏覽器並從緩衝區粘貼到密鑰哈希字段的順序符號 - 然後填寫包名稱(類名保留爲空),然後單擊保存打開警報對話框和下一個文本

谷歌播放軟件包名稱

有驗證對谷歌播放包名org.cocos.CocosProject問題。請檢查包名並重試。 如果您的應用未在Google Play上公開列出,您可以忽略此消息。

所以我的應用程序是不是在谷歌上市遊戲和我點擊使用哪裏是我的遊戲這個包的名字

3)後,我在命令行去,打開目錄: 和設置的Facebook sdkbox :

  • sdkbox進口Facebook的 - 和我得到錯誤輸出(不修補AppDelegate.cpp(我調查的問題,似乎那是因爲我已經改變了含AppDelegate.cpp)它看起來不錯,但我繼續設置)
  • 在proj.android/res/values/strings.xml我添加新的符合

    My_FACEBOOK_APP_ID

  • ,並在文件proj.android/AndroidManifest.xml與我的Facebook應用程序ID替換_replace_with_your_app_id_

  • 而在proj.android/project.properties和改變目標於目標=機器人-15

我編譯我的項目。 proj.android/project.properties的該內容後:

目標=機器人-15

android.library.reference。1 =庫/ facebook_lib/

所以,當我運行這樣的錯誤在Android上它崩潰的應用程序(從亞行logcat)

E/AndroidRuntime(3322): FATAL EXCEPTION: main 

E/AndroidRuntime(3322): java.lang.RuntimeException: Unable to get provider com.facebook.FacebookContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookContentProvider" on path: DexPathList[[zip file "/mnt/asec/org.cocos.Test-1/pkg.apk"],nativeLibraryDirectories=[/mnt/asec/org.cocos.Test-1/lib, /vendor/lib, /system/lib]] 

E/AndroidRuntime(3322): at android.app.ActivityThread.installProvider(ActivityThread.java:5100) 

E/AndroidRuntime(3322): at android.app.ActivityThread.installContentProviders(ActivityThread.java:4680) 

E/AndroidRuntime(3322): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4613) 

E/AndroidRuntime(3322): at android.app.ActivityThread.access$1300(ActivityThread.java:162) 

E/AndroidRuntime(3322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 

E/AndroidRuntime(3322): at android.os.Handler.dispatchMessage(Handler.java:107) 

E/AndroidRuntime(3322): at android.os.Looper.loop(Looper.java:194) 

E/AndroidRuntime(3322): at android.app.ActivityThread.main(ActivityThread.java:5371) 

E/AndroidRuntime(3322): at java.lang.reflect.Method.invokeNative(Native Method) 

E/AndroidRuntime(3322): at java.lang.reflect.Method.invoke(Method.java:525) 

E/AndroidRuntime(3322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 

E/AndroidRuntime(3322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 

E/AndroidRuntime(3322): at dalvik.system.NativeStart.main(Native Method) 

E/AndroidRuntime(3322): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookContentProvider" on path: DexPathList[[zip file "/mnt/asec/org.cocos.Test-1/pkg.apk"],nativeLibraryDirectories=[/mnt/asec/org.cocos.Test-1/lib, /vendor/lib, /system/lib]] 

E/AndroidRuntime(3322): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 

E/AndroidRuntime(3322): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

E/AndroidRuntime(3322): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 

E/AndroidRuntime(3322): at android.app.ActivityThread.installProvider(ActivityThread.java:5085) 

E/AndroidRuntime(3322): ... 12 more 

能不能幫我請!感謝您的任何想法和任何有用的鏈接。

感謝

UPDATE:

<?xml version='1.0' encoding='UTF-8'?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.cocos.Test" android:installLocation="auto" android:versionCode="1" android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="9" /> 
    <uses-feature android:glEsVersion="0x00020000" /> 
    <application hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name"> 
     <meta-data android:name="android.app.lib_name" android:value="cocos2dcpp" /> 
     <activity android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" android:name="org.cocos2dx.cpp.AppActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:name="com.facebook.FacebookActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" /> 
     <provider android:authorities="com.facebook.app.FacebookContentProviderMY_FB_APP_ID" android:exported="true" android:name="com.facebook.FacebookContentProvider" /> 
    </application> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
</manifest> 

UPDATE我並沒有公佈在Facebook上我的應用程序,也許我的包名稱不是唯一

UPDATE我怎麼有在Facebook上創建應用程序 1)繼續https://developers.facebook.com/並使用basi創建新應用程序c)設置,填寫顯示名稱和電子郵件,並選擇type - game.and點擊創建應用程序ID 2)所以接下來我繼續應用程序審查和發佈的應用程序(在我的應用程序附近的綠點附近) 3)所以請注意,下一步是絕對有霧對我來說,我打開設置,然後單擊添加平臺,選擇Android的,去幸福終點站進入下一個命令

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.android\debug.keystore | openssl sha1 -binary | openssl base64 

,我得到的序列符號,並在關鍵字哈希輸入所以,用我的名字包穀歌填場玩。並點擊保存。

UPDATE

什麼是錯誤的,我的步驟?任何想法?

相關鏈接:

+0

你能顯示清單嗎? – Striker

+0

@Striker感謝您的關注,我更新了我的帖子。 – Mike

+1

你在Facebook上設置了應用程序嗎?您不需要將其發佈用於測試;只是鏈接。 – Striker

回答

0

所以請檢查在build.xml在底部文件proj.android,有一定的路徑全部* .jar文件示例

<target name="-pre-compile"> 
     <!-- Redefine project.all.jars.path before -compile executes --> 
     <path id="project.all.jars.path"> 
      <fileset file="./jars/*.jar" /> 
      <fileset file="./jars/facebook_lib/bin/*.jar" /> 
      <fileset file="./jars/facebook_lib/libs/*.jar" /> 
      <fileset file="${sdk.dir}/tools/support/*.jar" /> 
     </path> 
    </target> 

所以現在遊戲沒有崩潰就開始了。