facebookarchive / react-native-fbsdk

A React Native wrapper around the Facebook SDKs for Android and iOS. Provides access to Facebook login, sharing, graph requests, app events etc.
https://developers.facebook.com/docs/react-native
Other
2.99k stars 908 forks source link

Crash on Android: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference #695

Open melihcaliskan opened 4 years ago

melihcaliskan commented 4 years ago

🐛 Bug Report

Hello,

I installed the 1.1.1 version of react-native-fbsdk and did configuration of it. (Added lines to AndroidManifest.xml and strings.xml files)

But the application crashes when I press the login button and start typing.

enter image description here

Here is a logcat output:

01-27 16:25:52.957   592  2709 E EGL_emulation: tid 2709: eglSurfaceAttrib(1210): error 0x3009 (EGL_BAD_MATCH)
01-27 16:25:52.957   592  2709 W OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe53ea500, error=EGL_BAD_MATCH
01-27 16:25:52.987  7303  7402 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
01-27 16:25:52.987  7303  7402 E AndroidRuntime: Process: com.schopuplab.schopup, PID: 7303
01-27 16:25:52.987  7303  7402 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.ReadableNativeArray.getDouble(ReadableNativeArray.java:91)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.JavaMethodWrapper$4.extractArgument(JavaMethodWrapper.java:64)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.JavaMethodWrapper$4.extractArgument(JavaMethodWrapper.java:60)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:359)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:789)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:98)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:164)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
01-27 16:25:52.987  7303  7402 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:764)
01-27 16:25:53.017   481   616 W ActivityManager:   Force finishing activity com.schopuplab.schopup/com.facebook.FacebookActivity
01-27 16:25:53.030   481   616 W ActivityManager:   Force finishing activity com.schopuplab.schopup/.MainActivity
01-27 16:25:53.126   481   616 D         : HostConnection::get() New Host Connection established 0xcd78cc40, tid 616
01-27 16:25:53.147   481   616 W         : Unrecognized GLES max version string in extensions: 
01-27 16:25:53.158   366   366 E EGL_emulation: tid 366: eglCreateSyncKHR(1881): error 0x3004 (EGL_BAD_ATTRIBUTE)

Can you help me to solve this issue, thank you.

Environment

System:
    OS: macOS 10.15.2
    CPU: (8) x64 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
    Memory: 46.39 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.4.0 - /usr/local/bin/node
    Yarn: 1.17.0 - /usr/local/bin/yarn
    npm: 6.13.1 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
  IDEs:
    Android Studio: 3.1 AI-173.4907809
    Xcode: 11.3/11C29 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6 
    react-native: 0.60.5 => 0.60.5 
  npmGlobalPackages:
    react-native-cli: 2.0.1
    react-native-macos-cli: 2.0.1
    react-native-rename: 2.4.1
    react-native-scripts: 2.0.1
mellamopepino commented 4 years ago

Pls, somebody can help us with this. I'm having the same problem with react-native-fbsdk and expo-facebook. :'(

joncolque commented 4 years ago

Hello! I fixed it changing gradle version and AndroidManifest. Works for both libraries react-native-fbsdk and expo-facebook.

These were my changes:

/android/gradle/wrapper/gradle-wrapper.properties distributionUrl: ...4.1.1... to ...5.1.1...

/android/build.gradle classpath 'com.android.tools.build:gradle:3.3.0' to classpath 'com.android.tools.build:gradle:3.4.0' and task wrapper(type: Wrapper){...} to wrapper {...}

/android/app/src/main/AndroidManifest.xml

<application>
       ...
       <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
       <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>
</application>

Additional information: My project was ejected from expo project with expo-facebook for login. The gradle version at that moment was 4.x. I try with react-native-fbsdk library and didn't work on android too. So I try use react-native-fbsdk on new project and the big difference was gradle version!