繁体   English   中英

Android Facebook登录ApplicationID错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM