Vì nút Đăng nhập Facebook có sẵn tự nhiên, tôi muốn có một thành phần trình bao bọc React Native cho Android. Vì vậy, tôi đã cố gắng viết nó. Nhưng ứng dụng bị treo ngay cả trước khi bắt đầu. kho github của tôi là: https://github.com/lalith26/react-native-fb-login-androidTạo thành phần Giao diện người dùng tùy chỉnh cho android trên React Native không thành công. Ứng dụng bị treo
Tôi đã làm như sau:
- Tôi tạo ra Manager cho widget LoginButton facebook:
- Tôi đã tạo một gói ReactPackage mở rộng MainReactPackage:
- tôi thêm ReactPackage mới trong MainActivity:
- tôi bao gồm các gradle sự phụ thuộc cho đăng nhập facebook sdk
https://github.com/lalith26/react-native-fb-login-android/blob/master/android/app/build.gradle#L28
- tôi đã thực hiện thành phần JS gói các phần Quê quán:
https://github.com/lalith26/react-native-fb-login-android/blob/master/fblogin.js
- Cuối cùng tôi đã sử dụng các thành phần JS:
https://github.com/lalith26/react-native-fb-login-android/blob/master/index.android.js#L21
tôi đọc qua các trang web và thấy rằng propTypes là mandato ry được thông qua. Tôi đã thử điều đó. Nhưng ứng dụng bị treo khi bắt đầu. Tôi không thể xem bất kỳ nhật ký nào. Vì vậy, tôi không thể tìm ra lý do thực sự cho vấn đề này. Tôi đã thử cùng một loạt các bước cho một nút và nó hoạt động tốt.
Có điều gì đó tôi đơn giản làm sai. Xin hãy giúp ..
Tôi có quyền truy cập vào nhật ký của trình giả lập thông qua logcat. Nó cho thấy:
E/AndroidRuntime (2550): Quy trình: com.fbloginbutton2, PID: 2550 E/AndroidRuntime (2550): java.lang.ExceptionInInitializerError E/AndroidRuntime (2550): tại com. fbloginbutton2.FBLoginButtonManager.createViewInstance (FBLoginButtonManager.java:29) E/AndroidRuntime (2550): tại com.fbloginbutton2.FBLoginButtonManager.createViewInstance (FBLoginButtonManager.java:15) E/AndroidRuntime (2550): tại com.facebook. react.uimanager.ViewManager.createView (ViewManager.java:41) E/AndroidRuntime (2550): tại com.facebook.react.uimanager.Nati veViewHierarchyManager.createView (NativeViewHierarchyManager.java:172) E/AndroidRuntime (2550): tại com.facebook.react.uimanager.UIViewOperationQueue $ CreateViewOperation.execute (UIViewOperationQueue.java:137) E/AndroidRuntime (2550): tại com. facebook.react.uimanager.UIViewOperationQueue $ 1.run (UIViewOperationQueue.java:574) E/AndroidRuntime (2550): tại com.facebook.react.uimanager.UIViewOperationQueue $ DispatchUIFrameCallback.doFrameGuarded (UIViewOperationQueue.java:622) E/AndroidRuntime (2550): tại com.facebook.react.uimanager.GuardedChoreographerFrameCallback.doFrame (GuardedChoreographerFrameCallback.java:32) E/AndroidRuntime (2550): tại com.facebook.react.uimanager.ReactChoreographer $ ReactChoreogra pherDispatcher.doFrame (ReactChoreographer.java:114) E/AndroidRuntime (2550): tại android.view.Choreographer $ CallbackRecord.run (Choreographer.java:765) E/AndroidRuntime (2550): tại android.view. Choreographer.doCallbacks (Choreographer.java WEBC80) E/AndroidRuntime (2550): tại android.view.Choreographer.doFrame (Choreographer.javaareness49) E/AndroidRuntime (2550): tại android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:753) E/AndroidRuntime (2550): tại android.os.Handler.handleCallback (Handler.java:739) E/AndroidRuntime ( 2550): tại android.os.Handler.dispatchMessage (Handler.java:95) E/AndroidRuntime (2 550): tại android.os.Looper.loop (Looper.java:135) E/AndroidRuntime (2550): tại android.app.ActivityThread.main (ActivityThread.java:5221) E/AndroidRuntime (2550): tại java.lang.reflect.Method.invoke (Native Phương thức) E/AndroidRuntime (2550): tại java.lang.reflect.Method.invoke (Method.java:372) E/AndroidRuntime ( 2550): tại com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) E/AndroidRuntime (2550): tại com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) E/AndroidRuntime (2550): Gây ra bởi: null E/AndroidRuntime (2550): tại com.facebook.internal.Validate.sdkInitialized (Validate.java:99) E/AndroidRuntime (2550): tại com.facebook.FacebookSdk.getCallbackRequestCodeOffset (FacebookSdk.java:735) E/AndroidRuntime (2550): tại com.facebook.internal.CallbackManagerImpl $ RequestCodeOffset.toRequestCode (CallbackManagerImpl.java: 109) E/AndroidRuntime (2550): tại com.facebook.login.widget.LoginButton. (LoginButton.java:58) E/AndroidRuntime (2550): ... 21 thêm W/ActivityManager (1327):
Force com.fbloginbutton2 hoạt động hoàn thiện/.MainActivity E/EGL_emulation (1373): tid 1373: eglCreateSyncKHR (1181): lỗi 0x3004 (EGL_BAD_ATTRIBUTE)
Xin chào, tôi đã trải qua những liên kết này. ReactPackage mở rộng từ MainReactPackage. Vì vậy, đó không phải là một vấn đề. Ngoài ra, tôi đã thực hiện tất cả 3 phương pháp của ReactPackage. Vì vậy, tôi không hiểu điều gì gây ra vấn đề. Vui lòng nêu rõ nếu bạn muốn tôi xem xét điều gì đó khác. Ngoài ra, tôi đang đi qua một prop thông qua thành phần của tôi. – brlalithkumar
Tôi đã khởi tạo facebook SDK và cung cấp id ứng dụng trong tệp kê khai. Sau đó, tôi có thể nhìn thấy nút đăng nhập – brlalithkumar