cocos2dx v3.9与facebook sdk集成

cocos2dx v3.9与facebook sdk集成

问题描述:

我想将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

所以请检查在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> 

所以现在游戏没有崩溃就开始了。