1

私はhttps://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/ をフォローしていますが、与えられたリックで説明されているように、すべてがうまくいきましたが、私が走ったとき私のプロジェクトでは、「残念ながら 'appname' が動作を停止しました」というエラーが発生しました。これが私の logcat エラーです。

09-26 17:37:06.662: E/AndroidRuntime(5849): FATAL EXCEPTION: main
09-26 17:37:06.662: E/AndroidRuntime(5849): java.lang.RuntimeException: Unable to start         activity ComponentInfo{com.facebook.hellofriend/com.facebook.hellofriend.MainActivity}:    java.lang.NullPointerException: Argument 'applicationId' cannot be null
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread.access$600(ActivityThread.java:139)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.os.Looper.loop(Looper.java:154)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread.main(ActivityThread.java:4974)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at java.lang.reflect.Method.invokeNative(Native Method)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at java.lang.reflect.Method.invoke(Method.java:511)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at dalvik.system.NativeStart.main(Native Method)
09-26 17:37:06.662: E/AndroidRuntime(5849): Caused by: java.lang.NullPointerException: Argument 'applicationId' cannot be null
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.internal.Validate.notNull(Validate.java:29)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.Session.<init>(Session.java:227)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.Session.<init>(Session.java:216)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.Session$Builder.build(Session.java:1575)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.Session.openActiveSession(Session.java:888)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.Session.openActiveSession(Session.java:830)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at com.facebook.hellofriend.MainActivity.onCreate(MainActivity.java:19)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.Activity.performCreate(Activity.java:4538)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
09-26 17:37:06.662: E/AndroidRuntime(5849):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2158)
09-26 17:37:06.662: E/AndroidRuntime(5849):     ... 11 more

ありがとう。

そして私のマニフェストファイルは次のとおりです。

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.facebook.hellofriend.MainActivity"
        android:label="@string/app_name" >
        <meta-data android:name="com.facebook.sdk.ApplicationId" 
        android:value="21907****928145"/>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

</manifest>

これが私の新しいlogcatエラーです:( 09-26 18:55:54.564: E/AndroidRuntime(11123): FATAL EXCEPTION: main 09-26 18:55:54.564: E/AndroidRuntime(11123): java.lang.RuntimeException:アクティビティ ComponentInfo{com.facebook.hellofriend/com.facebook.hellofriend.MainActivity} を開始できません: java.lang.NullPointerException: 引数 'applicationId' を null にすることはできません 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 09-26 18 :55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread.access$600(ActivityThread.java:139) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread で$H.handleMessage (ActivityThread.java:1262) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.os.Handler.dispatchMessage(Handler.java:99) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.os.Looper.loop(ルーパー) .java:154) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread.main(ActivityThread.java:4974) 09-26 18:55:54.564: E/AndroidRuntime(11123) ): java.lang.reflect.Method.invokeNative(Native Method) 09-26 18:55:54.564: E/AndroidRuntime(11123): java.lang.reflect.Method.invoke(Method.java:511) 09 -26 18:55:54.564: E/AndroidRuntime(11123): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 09-26 18:55:54.564: E/AndroidRuntime(11123 ): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 09-26 18:55:54.564: E/AndroidRuntime(11123): dalvik.system.NativeStart.main(ネイティブ メソッド) 09 -26 18:55:54.564:E/AndroidRuntime(11123): 原因: java.lang.NullPointerException: 引数 'applicationId' を null にすることはできません 09-26 18:55:54.564: E/AndroidRuntime(11123): com.facebook.internal.Validate.notNull( Validate.java:29) 09-26 18:55:54.564: E/AndroidRuntime(11123): com.facebook.Session.(Session.java:227) 09-26 18:55:54.564: E/AndroidRuntime(11123) ): com.facebook.Session.(Session.java:216) 09-26 18:55:54.564: E/AndroidRuntime(11123): com.facebook.Session$Builder.build(Session.java:1575) 09 -26 18:55:54.564: E/AndroidRuntime(11123): com.facebook.Session.openActiveSession(Session.java:888) 09-26 18:55:54.564: E/AndroidRuntime(11123): com.facebook .Session.openActiveSession(Session.java:830) 09-26 18:55:54.564: E/AndroidRuntime(11123): com.facebook.hellofriend.MainActivity.onCreate(MainActivity.java:19) 09-26 18:55 :54.564: E/AndroidRuntime(11123): android.app.Activity.performCreate(Activity.java:4538) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.Instrumentation.callActivityOnCreate(Instrumentation) .java:1071) 09-26 18:55:54.564: E/AndroidRuntime(11123): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2158) 09-26 18:55:54.564: E/AndroidRuntime(11123) ): ... 11 以上

4

2 に答える 2

1

マニフェスト ファイルにアプリ ID を追加する必要があります

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id"/>

上の</application>タグ。

"@string/fb_app_id"strings.xmlファイル内のFacebook開発者コンソールからのあなたのFbアプリIDです。

編集:

マニフェストが次のようになっていることが確実な場合:

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.facebook.hellofriend.MainActivity"
        android:label="@string/app_name" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="21907****928145"/>

</application>

コードで App ID をセットアップしてみてください。

session = new Session(this);
session = new Session.Builder(this).setApplicationId("21907****928145").build();

EDIT : (コードで設定されたアプリ ID を使用するサンプル)

新しいクラスを作成し、メイン パッケージに配置します。

public class MyApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        session = new Session(this);
        session = new Session.Builder(this).setApplicationId("21907****928145").build();
    }
}

あなたの名前を次の<application> in AndroidManifest.xmlように変更します。

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" 
android:name=".MyApp">
...
于 2013-09-26T13:25:11.390 に答える
1

文字列「@string/21907****928145」を参照しています

「21907****928145」という名前の String リソースがあり、値としてアプリ キーがあると思います。

文字列リソースの名前を数字で始めることはできません。

于 2013-09-26T13:52:47.377 に答える