2013-06-03 18 views
10

Facebook'taki uygulamaların çalışmasını sağlamaya çalışıyorum ve hayatım boyunca, Facebook'ta bulunan LoginButton'u neden referans gösteremediğimi anlayamıyorum SDK. Aşağıda, LoginButton'u tanımlayan düzenine baktığımda karşılaştığım hata var.Aşağıdaki sınıflar örneklenemedi: - com.facebook.widget.LoginButton

<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_marginTop="30dp" 
    /> 

The following classes could not be instantiated: 
- com.facebook.widget.LoginButton (Open Class, Show Error Log) 
See the Error Log (Window > Show View) for more details. 
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse 

android.content.res.Resources$NotFoundException: Could not resolve resource value:   0x7F070004. 
at android.content.res.BridgeResources.throwException(BridgeResources.java:693) 
at android.content.res.BridgeResources.getColor(BridgeResources.java:185) 
at com.facebook.widget.LoginButton.<init>(LoginButton.java:211) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0( at  sun.reflect.NativeConstructorAccessorImpl.newInstance( at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( at java.lang.reflect.Constructor.newInstance( at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:422) 
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:179) 
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) 
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:746) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:718) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:372) 
+0

Herkes bu neden oluyor için herhangi bir fikir var contentView set? Yanıt alamıyorum. –

+0

Eclipse öğenin önizlemesini oluşturmaya çalışıyor ancak kaynağı bir renk kaynağında, 0x7F070004'te yükleyemiyor. Hangi öğenin olduğunu anlamak için oluşturulan R.java'yı kontrol edin. Ya projenizde bulunmuyor ya da kütüphanelerden biri eksik. ... Sanırım .... Uygulamayı bir cihazda veya emülatörde çalıştırırken iyi çalışan kaynaklar için sorun yaşıyorum. Hala sorunu araştırıyorum ... –

+1

Ben aynı sorunu var, ben google oyun hizmetleri kullanarak nedeni olduğunu fark ettim, henüz bir çözüm yok – user1325188

cevap

32

SEÇENEĞİ # 1: Yeni kaynak eklendiğinde

Bazen Eclipse bu neden doğru yeni kodu (belki bir önbelleğe alma sorunu) derleme değil hata.

Normalde, Eclipse'i yeniden başlatmak sorunu çözmek için yeterlidir.

SEÇENEĞİ # 2:

Bazen özel görünümler render bu duruma neden olur. Tek bildiğim geçici çözüm, getResources()'u kullanmaya çalıştığınızda her zaman View.isInEditMode'u kontrol etmektir.

örnek aşağıdaki gibi olabilir: Eğer kullanımı android stüdyo sonra burada berrak belgeler ise

if (isInEditMode()) { 
    //do something else, as getResources() is not valid. 
} else { 
    //you can use getResources() 
    String mystring = getResources().getString(R.string.mystring); 
} 
+1

ile güncelleyin bu diğer sorunların bir dizi yardımcı olur çok yararlı yorum . Android Studio'da – gjnave

+0

Seçenek # 1 yardım etmedi v0.8.14. İpucu mesajından ancak bu ipucunun nasıl uygulanacağından emin değilim - düşüncelerim ?: İpucu: IDE – natur3

+0

'da gösterildiği gibi kodun atlanması veya örnek verilerinin gösterilmesi için özel görünümlerinizde View.isInEditMode() özelliğini kullanın. kendi sorunu. Navigasyon çekmecesini kullanıyorum ve View'dan onCreateView() öğesini çağırıyorum. Aşağıdaki satırı ekledim rootView = blah blah; rootView.isInEditMode(); Bu, tasarım için grafiksel IDE'yi kullanmamı sağlıyor. – natur3

1

, fragmanı ile

Kullanım facebook Tutorial

Kullanıcı facebook parçası olmadan

Adım 1: Paketinizdeki java dosyası MyApplication.java oluşturun.

Tutorial

ve Copu myApplicatyon.java

Adım 2: kurulum androidmenufest.xml

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.Myapptheme" 
    android:name=".MyApplication" 
    > 
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" /> 
    <activity android:name="com.facebook.FacebookActivity" 
     android:configChanges= 
      "keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar" 
     android:label="@string/app_name" /> 

Adım 3: init Girişi Düğme

aradığınız Init iç etkinlik
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    callbackManager = CallbackManager.Factory.create(); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    setContentView(R.layout.activity_auth_login); 

    //Init Elements 
    etEmail = (EditText) findViewById(R.id.etEmail); 
    etPassword = (EditText) findViewById(R.id.etPassword); 

    validator = new Validator(this); 
    validator.setValidationListener(this); 

    serverConnection = new ServerConnection(); 

    //Faceboo login init 
    loginButton = (LoginButton) findViewById(R.id.btnFbLogin); 
    loginButton.setReadPermissions(Arrays.asList("public_profile","email","user_photos")); 



    // Other app specific specialization 
    // Callback registration 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      // App code 

      Profile profile = Profile.getCurrentProfile(); 

      Log.v("profile.getName:",profile.getName()); 
     } 

     @Override 
     public void onCancel() { 
      // App code 
     } 

     @Override 
     public void onError(FacebookException exception) { 
      // App code 
     } 
    }); 

} 
2

// bunu ilk önce yazarlar

FacebookSdk.sdkInitialize (getApplicationContext());

// sonra

setContentView(R.layout.activity_main);