
我正在尝试将Facebook添加到已经完成的libGDX游戏中.但是,当我尝试检查当前Session时,它返回null.我试图建立一个新的会话来代替,但出现了空指针错误:
01-04 19:49:15.433: E/AndroIDRuntime(16540): FATAL EXCEPTION: main01-04 19:49:15.433: E/AndroIDRuntime(16540): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pressx.thedevice/com.pressx.thedevice.MainActivity}: java.lang.NullPointerException: Argument 'applicationID' cannot be null01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2070)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2095)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread.access0(ActivityThread.java:135)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.os.Handler.dispatchMessage(Handler.java:99)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.os.Looper.loop(Looper.java:137)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread.main(ActivityThread.java:4849)01-04 19:49:15.433: E/AndroIDRuntime(16540): at java.lang.reflect.Method.invokeNative(Native Method)01-04 19:49:15.433: E/AndroIDRuntime(16540): at java.lang.reflect.Method.invoke(Method.java:511)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:562)01-04 19:49:15.433: E/AndroIDRuntime(16540): at dalvik.system.NativeStart.main(Native Method)01-04 19:49:15.433: E/AndroIDRuntime(16540): Caused by: java.lang.NullPointerException: Argument 'applicationID' cannot be null01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.internal.ValIDate.notNull(ValIDate.java:29)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.Session.<init>(Session.java:227)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.Session.<init>(Session.java:216)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.Session$Builder.build(Session.java:1576)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.Session.openActiveSession(Session.java:888)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.facebook.Session.openActiveSession(Session.java:830)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.pressx.facebook.FacebookAndroID.<init>(FacebookAndroID.java:27)01-04 19:49:15.433: E/AndroIDRuntime(16540): at com.pressx.thedevice.MainActivity.onCreate(MainActivity.java:17)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.Activity.performCreate(Activity.java:5244)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)01-04 19:49:15.433: E/AndroIDRuntime(16540): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2034)01-04 19:49:15.433: E/AndroIDRuntime(16540): ... 11 more如果Facebook从AndroIDManifest.xml检查ApplicationID值,那么正确的语法是什么?我将其作为我的元数据行:
<Meta-data androID:name="com.facebook.sdk.ApplicationID" androID:value="@string/app_ID"/>以此作为我的值字符串:
<string name="app_ID">###############</string>当前已满,我的AndroIDManifest.xml如下所示:
<?xml version="1.0" enCoding="utf-8"?><manifest package="com.pressx.thedevice" androID:versionCode="1" androID:versionname="1.0" xmlns:androID="http://schemas.androID.com/apk/res/androID"> <uses-sdk androID:minSdkVersion="11" androID:targetSdkVersion="19" /> <uses-permission androID:name="androID.permission.INTERNET"/> <application androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" > <Meta-data androID:name="ApplicationID" androID:value="@string/app_ID"/> <Meta-data androID:name="com.facebook.sdk.ApplicationID" androID:value="@string/app_ID" /> <activity androID:name="com.facebook.LoginActivity"> </activity> <activity androID:name=".MainActivity" androID:label="@string/app_name" androID:screenorIEntation="landscape" androID:configChanges="keyboard|keyboardHIDden|orIEntation|screenSize"> <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>我的完整values.xml看起来像这样:
<?xml version="1.0" enCoding="utf-8"?><resources> <string name="app_name">The Device</string> <string name="app_ID">###############</string></resources>有人对此问题有解决方案吗?您是否需要诸如我的项目设置之类的更多信息?
解决方法:
<Meta-data androID:name="com.facebook.sdk.ApplicationID" androID:value="@string/app_ID" />必须在< application />中声明范围,而不是< activity />范围.将标签移动到活动之外,如下所示:
<application androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" ><!-- Note new location --><Meta-data androID:name="com.facebook.sdk.ApplicationID" androID:value="@string/app_ID" /><Meta-data androID:name="ApplicationID" androID:value="@string/app_ID"/> <activity androID:name="com.facebook.LoginActivity"></activity> <activity androID:name=".MainActivity" androID:label="@string/app_name" androID:screenorIEntation="landscape" androID:configChanges="keyboard|keyboardHIDden|orIEntation|screenSize"> <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity></application> 总结 以上是内存溢出为你收集整理的java-applicationId不能为null,但xml语法正确全部内容,希望文章能够帮你解决java-applicationId不能为null,但xml语法正确所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)