2013-09-26 123 views
1

我正在關注android33 sdk的https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/,所有事情都很好,因爲它在給定的lik上描述,但是當我運行我的項目時,我得到了錯誤「不幸'appname'已停止工作」這裏是我的logcat錯誤:不幸的是,「appname」已停止工作

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):致命異常:主要 09 -26 18:55:54.564:E/AndroidRuntime(11123):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.facebook.hellofriend/com.facebook.hellofriend.MainActivity}:java.lang.NullPointerException:Argument' applicationId'不能爲null 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.app.ActivityThread.access $ 600(ActivityThread.java:139) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1262) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.os.Handler.dispatchMessage(Handler.java:99) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android .os.Looper.loop(Looper.java:154) 09-26 18:55:54.564:E/AndroidRuntime(11123):at android.app.ActivityThread.main(ActivityThread.java:4974) 09-26 18 :55:54.564:E/AndroidRuntime(11123):at java.lang.reflect.Method.invokeNative(Native Method) 09-26 18:55:54.564:E/AndroidRuntime(11123):at java.lang.reflect.Method.invoke(Method.java:511) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.android.internal.os.ZygoteInit.main(ZygoteInit。 java:551) 09-26 18:55:54.564:E/AndroidRuntime(11123):at dalvik.system.NativeStart.main(Native Method) 09-26 18:55:54.564:E/AndroidRuntime(11123):由於:java.lang.NullPointerException:參數'applicationId'不能爲空 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.facebook.internal.Validate.notNull(Validate.java:29) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.facebook.Session。(Session.java:227) 09-26 18:55:54.564:E/AndroidRun time(11123):at com.facebook.Session。(Session.java:216) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.facebook.Session $ Builder.build(Session.java :1575) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.facebook.Session.openActiveSession(Session.java:888) 09-26 18:55:54.564:E/AndroidRuntime(11123 ):at com.facebook.Session.openActiveSession(Session.java:830) 09-26 18:55:54.564:E/AndroidRuntime(11123):at com.facebook.hellofriend.MainActivity.onCreate(MainActivity.java:19 ) 09-26 18:55:54.564:E/AndroidRuntime(11123):at 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):at android.app.Acti vityThread.performLaunchActivity(ActivityThread.java:2158) 09-26 18:55:54.564:E/AndroidRuntime(11123):...11多

+0

''applicationId'不能爲空'? – RobinHood

+0

@RobinHood已經給出了我的應用程序ID在string.xml ********************如果你在談論另一個然後PLZ讓我知道那個謝謝。 –

+0

發佈此類代碼! – RobinHood

回答

1

你必須在你的清單文件

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

添加和應用程序ID以上</application>標籤。

"@string/fb_app_id"是來自Facebook的開發者控制檯FB應用程序ID內strings.xml文件。

編輯:

如果你確信你的清單如下:

<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> 

嘗試安裝應用程序ID代碼:

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

編輯:(樣本在代碼中使用set app 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"> 
... 
+0

我發佈了我的清單文件,我收到錯誤的行,我給我的應用程序ID。 –

+0

更改'機器人:值= 「@字符串/ 21907 **** 928145」''到機器人:值= 「@字符串/ APP_ID」'或'只是機器人:值= 「21907 **** 928145」' – sswierczek

+0

謝謝@Sebastian Swierczek從清單刪除錯誤,但我仍面臨着同樣的問題,「不幸‘APPNAME’已停止工作」正上方 –

1

你是指字符串 「@字符串/ 21907 **** 928145」

我猜你有名稱的String資源「21907 **** 928145」和應用程序鍵的值。

字符串資源的名稱不能以數字開頭。

+0

我已經更新了我的清單,檢查它並讓我知道什麼是錯的。我仍然面臨同樣的問題,「不幸的」應用程序名稱已停止工作「 –

+1

嘗試製作一個名爲」AppId「的字符串資源,並將您的應用程序ID作爲值。在您的清單中放入 另外,不知道它是否重要,但我總是把它裏面的應用程序,而不是在一個活動內 –

+1

通過在應用程序內保存我的時間謝謝@http: //stackoverflow.com/users/1373050/mark-buikema –

相關問題