我正在开发一个android应用程序,我正在尝试整合Facebook登录。问题是,我得到了“参数applicationId不能为空”的空指针异常。我已经阅读了大量与这个问题相关的堆叠溢出的帖子,据我所知,我正在做我应该做的一切(正确地引用清单中的应用程序it,反复检查它与应用程序仪表板中的相同)。但是它仍然显示这个错误。令人沮丧。请帮帮我
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.golffairway"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.android.golffairway.activity.LoginActivity"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.android.golffairway.activity.HomeActivity"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.android.golffairway.activity.GolfActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.android.golffairway.activity.MatchActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.android.golffairway.activity.ScoresActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity android:name="com.facebook.LoginActivity"></activity>
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id"/>
</application>
</manifest>strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">GolfFairway</string>
<string name="app_id">727************</string>
</resources>用于尝试连接到facebook的方法
public void ConnectToFacebook() {
Session session = Session.getActiveSession();
if(session == null)
session = Session.openActiveSessionFromCache(context);
if (!session.isOpened() && !session.isClosed()) {
Log.i(TAG, "ConnectToFacebook if");
OpenRequest newSession = new Session.OpenRequest((Activity) context);
newSession.setCallback(callback);
session.openForRead(newSession);
try {
Session.OpenRequest request = new Session.OpenRequest((Activity) context);
request.setPermissions(Arrays.asList("email","publish_stream","publish_actions"));
} catch (Exception e) {
Log.d(TAG,""+e);
e.printStackTrace();
}
} else {
Log.i(TAG, "ConnectToFacebook else");
Session.openActiveSession((Activity) context, true, callback);
}
}编辑:
logcat输出
05-17 11:27:58.923: E/Trace(2492): error opening trace file: No such file or directory (2)
05-17 11:27:59.079: D/dalvikvm(2492): GC_CONCURRENT freed 119K, 9% free 2626K/2872K, paused 2ms+0ms, total 14ms
05-17 11:27:59.211: D/libEGL(2492): loaded /system/lib/egl/libEGL_emulation.so
05-17 11:27:59.223: D/(2492): HostConnection::get() New Host Connection established 0xb8d3d698, tid 2492
05-17 11:27:59.243: D/libEGL(2492): loaded /system/lib/egl/libGLESv1_CM_emulation.so
05-17 11:27:59.251: D/libEGL(2492): loaded /system/lib/egl/libGLESv2_emulation.so
05-17 11:27:59.359: W/EGL_emulation(2492): eglSurfaceAttrib not implemented
05-17 11:27:59.403: D/OpenGLRenderer(2492): Enabling debug mode 0
05-17 11:32:02.952: D/AndroidRuntime(2492): Shutting down VM
05-17 11:32:02.952: W/dalvikvm(2492): threadid=1: thread exiting with uncaught exception (group=0xa6222908)
05-17 11:32:02.956: E/AndroidRuntime(2492): FATAL EXCEPTION: main
05-17 11:32:02.956: E/AndroidRuntime(2492): java.lang.NullPointerException: Argument 'applicationId' cannot be null
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.internal.Validate.notNull(Validate.java:29)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.Session.<init>(Session.java:227)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.Session.<init>(Session.java:216)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.Session$Builder.build(Session.java:1576)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.Session.openActiveSession(Session.java:888)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.facebook.Session.openActiveSessionFromCache(Session.java:808)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.android.golffairway.facebook.FacebookLogin.ConnectToFacebook(FacebookLogin.java:60)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.android.golffairway.fragments.AccountLoginFrag.onClick(AccountLoginFrag.java:122)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.view.View.performClick(View.java:4204)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.view.View$PerformClick.run(View.java:17355)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.os.Handler.handleCallback(Handler.java:725)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.os.Handler.dispatchMessage(Handler.java:92)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.os.Looper.loop(Looper.java:137)
05-17 11:32:02.956: E/AndroidRuntime(2492): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-17 11:32:02.956: E/AndroidRuntime(2492): at java.lang.reflect.Method.invokeNative(Native Method)
05-17 11:32:02.956: E/AndroidRuntime(2492): at java.lang.reflect.Method.invoke(Method.java:511)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-17 11:32:02.956: E/AndroidRuntime(2492): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-17 11:32:02.956: E/AndroidRuntime(2492): at dalvik.system.NativeStart.main(Native Method)
05-17 11:32:04.548: I/Process(2492): Sending signal. PID: 2492 SIG: 9编辑2:
移除清单中的第二个applicationId标记(无论如何这不是问题),所以我希望不会有更多与此相关的答案出现。如有需要,将张贴更多细节!
发布于 2014-05-17 11:25:58
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id"/>
<meta-data
android:name="ApplicationId"
android:value="@string/app_id"/>
You are using ApplicationId two times in Manifest.xml please remove one.发布于 2014-05-17 13:20:57
只需从清单中删除这些行:
<meta-data
android:name="ApplicationId"
android:value="@string/app_id"/>https://stackoverflow.com/questions/23710692
复制相似问题