2015-02-08 25 views
9

SDK'yı entegre etmek için Facebook eğitimini takip ettim ve .xml dosyasımda Facebook'a giriş yaptıktan hemen sonra uygulamam derlenecek, açık (Nexus'umda) 4 çalışan Lollipop, proje kitkat + 'a hedeflendi ve ardından çöktü. Tamamen güncellenmiş Android Studio üzerinde çalışıyorum.doInBackground() android studio'daki facebook api hatası

Logcat:

02-07 22:48:24.340 1563-1600/com.example.prachi.mapsapplication E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 
Process: com.example.prachi.mapsapplication, PID: 1563 
java.lang.RuntimeException: An error occured while executing doInBackground() 
     at android.os.AsyncTask$3.done(AsyncTask.java:300) 
     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
     at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
     at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference 
     at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:746) 
     at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:774) 
     at com.facebook.internal.Utility.queryAppSettings(Utility.java:673) 
     at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:678) 
     at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:675) 
     at android.os.AsyncTask$2.call(AsyncTask.java:288) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:818) 

.xml: Eğer manifestolar uygulama etiketinde uygulama kimliği içermiyordu ise

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" 
android:id="@+id/main"> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Adventure Options" 
    android:id="@+id/options" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="139dp" 
    android:onClick="optionOnClick" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Random Adventure" 
    android:id="@+id/random" 
    android:layout_marginTop="57dp" 
    android:onClick="randomOnClick" 
    android:layout_below="@+id/authButton" 
    android:layout_alignStart="@+id/options" /> 

<com.facebook.widget.LoginButton 
    android:id="@+id/authButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

cevap

40

, kilitlenmesine. Böyle bir durumda, uygulamanızın facebook geliştirici hesabınıza kayıtlı olduğundan, uygulama kimliğini aldığından ve dizgi değerlerinize koyduğundan emin olun.

<string name="app_id">XXXXXXXXXXXXXXX</string> 

Bundan sonra Manifest'inizde uygulamanız etiketi aşağıdaki yerleştirin: size Facebook uygulaması kimliği eklememiş görünüyor

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

Teşekkür bir meta etiketi ekleyin. Uygulama etiketimdeki ekledim ve sorunu çözdüm. –

+0

Sevindim Yardımcı olabilirim. – Morten

+0

@MortenEngell Yardımlarınız için teşekkürler. –

1

. Öyleyse, uygulamayı Facebook Developers Dashboard'da yapmanız ve kontrol panelinde yeni bir uygulama oluşturmanız gerekir. Bir uygulama kimliği alacaksınız. Uygulama kimliğini sizde/string.xml dosyasında saklayın.

<string name="facebook_app_id">XXXXXXXXXXXXXXX</string> 

ve sonra AndroidManifest.xml uygulamanıza sen benim günü kurtardı

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