[英]how to use facebook sdk to sign in on an Android phone?? (error= applicationID is null)
[英]Android Facebook Login ApplicationID error
我正在开发一个Android应用,并且正在尝试集成Facebook登录。 问题是,我一直在获取“参数applicationId不能为空”空指针异常。 我已经阅读了有关此问题的大量关于stackoverflow的帖子,据我所知,我正在做我应该做的所有事情(正确地在清单中引用了applicationid,再次检查了它与应用仪表板)。 但是它仍然显示此错误。 令人沮丧。 请帮帮我
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标记(无论如何这都不是问题),所以我希望不会再有与此相关的答案。 如果需要,将发布更多详细信息!
<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.
只需从清单中删除这些行:
<meta-data
android:name="ApplicationId"
android:value="@string/app_id"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.