Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SetModeStyle - Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference #59

Open
SanKlein opened this issue Jan 16, 2024 · 3 comments

Comments

@SanKlein
Copy link

Description

Hi, thank you for the great library. Only way I was able to set the theme in the Android app status bar and navigation bar.

I am running into this crash lately.

I am calling this in my code:
SystemNavigationBar && SystemNavigationBar.setBarMode && SystemNavigationBar.setBarMode(isDarkMode ? 'light' : 'dark');

I added the checks because I wanted to see if that would fix it, but it did not.

Here is the crash I am seeing:

Fatal Exception: java.lang.NullPointerException Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference com.reactnativesystemnavigationbar.SystemNavigationBarModule.setModeStyle (SystemNavigationBarModule.java:472) com.reactnativesystemnavigationbar.SystemNavigationBarModule.lambda$setModeStyle$8$SystemNavigationBarModule (SystemNavigationBarModule.java:521) com.reactnativesystemnavigationbar.-$$Lambda$SystemNavigationBarModule$7c9Wq1aEzZlZVxbqz80nWTlUwis.run (Unknown Source:8) android.os.Handler.handleCallback (Handler.java:942)

I am not able to reproduce the issue, but I am seeing it in crashlytics.

Here are some of the devices it is happening on:
Android 14 Pixel 6
Android 14 Galaxy S22
Android 13 Oppo Reno8 5G
Android 11 Realme C3
Android 10 Galaxy Note9
Android 10 Note3

Please let me know if there is anything else that would be helpful. Thank you!

react-native-system-navigation-bar version

2.6.3

React Native version

0.62.2

Snack, code example, screenshot, or link to a repository

import SystemNavigationBar from 'react-native-system-navigation-bar';

SystemNavigationBar && SystemNavigationBar.setBarMode && SystemNavigationBar.setBarMode(isDarkMode ? 'light' : 'dark');

@kadiraydinli
Copy link
Owner

Hi @SanKlein, I released a new version. Can you check again in the latest version?

@efstathiosntonas
Copy link
Contributor

efstathiosntonas commented Mar 12, 2024

@kadiraydinli Hi, it still happens on version 2.6.4, the crashes I got are from Android 11,12,13,14.

stacktrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference
        at com.reactnativesystemnavigationbar.SystemNavigationBarModule.setModeStyle(SystemNavigationBarModule.java:474)
        at com.reactnativesystemnavigationbar.SystemNavigationBarModule.lambda$setNavigationColor$1(SystemNavigationBarModule.java:260)
        at com.reactnativesystemnavigationbar.SystemNavigationBarModule.$r8$lambda$2vOhle1R4mCvq8Qvlxo7ugiWWaI(Unknown)
        at com.reactnativesystemnavigationbar.SystemNavigationBarModule$$ExternalSyntheticLambda4.run(Unknown:12)
        at android.os.Handler.handleCallback(Handler.java:958)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:230)
        at android.os.Looper.loop(Looper.java:319)
        at android.app.ActivityThread.main(ActivityThread.java:8893)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

maybe something like this could get around the crash:

  private void setModeStyle(Boolean light, Integer bar) {
    Activity currentActivity = getCurrentActivity();
    if (currentActivity == null) {
      return;
    }
    
    int visibility = 0;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    ...

@HarshitMadhav
Copy link
Contributor

Normally, I replicated the issue and then fixed it and raised the PR, this issue should not arise. I think the fix by @efstathiosntonas will work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants