2015-03-25 45 views
9

Tôi cố gắng kiểm tra đăng nhập bằng facebook SDK.Android Studio 1.1.0 Facebook SDK Đăng nhập

Vì vậy, tôi thêm với compile 'com.facebook.android:facebook-android-sdk:4.0.0'.

Sau đó thêm FacebookSdk.sdkInitialize(getApplicationContext()); để MainActivity.java

Nhưng khi tôi thêm

<com.facebook.login.widget.LoginButton 
    android:id="@+id/login_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="30dp" 
    android:layout_marginBottom="30dp" />` 

Tôi đã này lỗi sau:

Rendering Problems The following classes could not be instantiated: 
com.facebook.login.widget.LoginButton (Open Class, Show Exception) 
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE 
Exception Details java.lang.NoClassDefFoundError: Could not initialize class com.facebook.login.widget.LoginButton 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:385) Copy stack to clipboard 

Trả lời

22

Bạn không được đăng của bạn Mã hoạt động. Nhưng tôi nghĩ mã của bạn giống như:

setContentView(R.layout.my_login_layout); 
FacebookSdk.sdkInitialize(getApplicationContext()); 
mCallbackManager = CallbackManager.Factory.create(); 

Sự cố là thứ tự của mã. Bỏ qua các "Render vấn đề" trong bố trí, thay đổi thứ tự của mã này:

FacebookSdk.sdkInitialize(getApplicationContext()); 
mCallbackManager = CallbackManager.Factory.create(); // this line doesn't matter 
setContentView(R.layout.my_login_layout); 

Sử dụng mã này trong OnCreate (...) {...} bố trí

Tránh làm cho vấn đề

nếu bạn muốn giải quyết các sự cố hiển thị (xem trước bố cục), hãy kiểm tra @Nathan30 answer (xem bên dưới).

  1. Tải Facebook SDK
  2. nhập nó như là một mô-đun để dự án của bạn
  3. Sau đó thêm <com.facebook.widget.LoginButton .../> để bố trí của bạn.
+0

Ồ vâng nó hoạt động, cảm ơn! :) – Nathan30

+0

Nhưng nó gây phiền toái cho vấn đề hiển thị, không có giải pháp cho điều này? – Nathan30

+1

Tôi không chắc chắn bây giờ làm thế nào tôi có thể tránh điều này ... bởi vì bạn đang phải là rất khó chịu. Nếu tôi tìm thấy một cách, tôi sẽ cập nhật câu trả lời. –

-2

Tôi cố gắng này và nó hoạt động

gia tăng này trong phụ thuộc

dependencies { 
    compile 'com.facebook.android:facebook-android-sdk:4.4.0' 
} 

enter image description here

public class MainActivity extends Activity { 
     CallbackManager callbackManager; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      FacebookSdk.sdkInitialize(getApplicationContext()); 
      callbackManager = CallbackManager.Factory.create(); 
      setContentView(R.layout.activity_main); 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.menu_main, menu); 


      return true; 
      } 
     } 

enter image description here

+1

Và trong bố cục hiển thị, nó hiển thị nút bị hỏng hoặc cùng vấn đề với tôi? – Nathan30

1

Đối với những người có vấn đề này render, tôi tìm một giải pháp. Tôi không sử dụng nữa các phụ thuộc gradle.build vào facebook SDK. Tôi tải xuống SDK từ trang web của Facebook và tôi nhập mô-đun vào dự án của mình trong Android Studio. Sau đó, thêm

<com.facebook.widget.LoginButton 
    android:id="@+id/authButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="45dp" /> 

để xml bố trí của bạn

+0

Tin tốt! ... tôi không thích nhập dự án như một mô-đun nhưng nếu điều này giải quyết được vấn đề, thì tốt là điều cần biết. –

+1

tôi đã cập nhật câu trả lời cho những người có cùng vấn đề ... :) –

2

đơn giản, nhanh chóng và dễ dàng: cập nhật phiên bản SDK trên Gradle ->Dependencies lên phiên bản mới nhất và các vấn đề vẽ được giải quyết. Tại thời điểm viết bài này, SDK Facebook mới nhất là 4.3.0, vì vậy đây là những gì nó sẽ giống như trên Dependencies:

compile 'com.facebook.android:facebook-android-sdk:4.3.0' 
2

Đơn giản chỉ cần xác định một phiên bản khác của Facebook SDK làm việc cho tôi. Điều chỉnh phần phụ thuộc tệp build.graddle. Mỏ trông giống như;

dependencies { 
compile 'com.facebook.android:facebook-android-sdk:4.4.0'} 

Version 4.0.0 liên tục ném ngoại lệ

Tôi không phải nhập khẩu Facebook SDK như một module

tôi phải chơi xung quanh với các phiên bản khác nhau của SDK như sẵn here

Các vấn đề liên quan