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

Null Pointer Exception after upgrading SDK to 12.4.2 #657

Closed
BinaryCores opened this issue Apr 15, 2024 · 8 comments
Closed

Null Pointer Exception after upgrading SDK to 12.4.2 #657

BinaryCores opened this issue Apr 15, 2024 · 8 comments
Assignees

Comments

@BinaryCores
Copy link

Following exceptions are occurring in all of our apps and due to this crash rate is very high in Android Vitals. Kindly provide the solution for it or kindly fix it soon.

Exception java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.applovin.sdk.AppLovinSdkSettings.isVerboseLoggingEnabled()' on a null object reference
at com.applovin.impl.vj.c (SourceFile:497)
at com.applovin.impl.sdk.t.a (SourceFile:15)
at com.applovin.impl.sdk.t.a (SourceFile:14)
at com.applovin.impl.mediation.ads.a.logApiCall (SourceFile:4)
at com.applovin.mediation.nativeAds.MaxNativeAdLoader. (SourceFile:3)
at com.applovin.mediation.nativeAds.MaxNativeAdLoader. (SourceFile:1)
at com.BinaryCores.GalaxyA23Wallpapers.binary_cores_fragments.FragmentCategory.onCreateView (FragmentCategory.java:67)
at androidx.fragment.app.Fragment.performCreateView (Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView (FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:282)
at androidx.fragment.app.FragmentStore.moveToExpectedState (FragmentStore.java:112)
at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1647)
at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:3128)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated (FragmentManager.java:3072)
at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart (FragmentActivity.java:502)
at androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:251)
at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1582)
at android.app.Activity.performStart (Activity.java:8977)
at android.app.ActivityThread.handleStartActivity (ActivityThread.java:4198)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:225)
at android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:205)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:177)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:98)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2685)
at android.os.Handler.dispatchMessage (Handler.java:106)
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
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)

@LouisYubo
Copy link

We have the same issue, which occurs when using setHasUserConsent

Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'boolean com.applovin.sdk.AppLovinSdkSettings.isVerboseLoggingEnabled()' on a null object reference
com.applovin.impl.vj.c (SourceFile:497)
com.applovin.impl.sdk.t.a (SourceFile:15)
com.applovin.impl.sdk.t.a (SourceFile:14)
com.applovin.communicator.AppLovinCommunicator.a (SourceFile:7)
com.applovin.communicator.AppLovinCommunicator.a (SourceFile:4)
com.applovin.impl.sdk.h.<init> (SourceFile:8)
com.applovin.impl.sdk.k.o (SourceFile:1)
com.applovin.impl.sdk.k.P0
com.applovin.sdk.AppLovinSdk.reinitialize (SourceFile:2)
com.applovin.sdk.AppLovinSdk.reinitializeAll (SourceFile:5)
com.applovin.sdk.AppLovinPrivacySettings.setHasUserConsent (SourceFile:6)

@adurandet
Copy link

adurandet commented Apr 22, 2024

Same issue while trying to configure settings

val initConfig = AppLovinSdkInitializationConfiguration.builder(AppLovinKey.appLovinKey, context)
            .setMediationProvider(AppLovinMediationProvider.MAX)
            .configureSettings { settings ->
                settings.termsAndPrivacyPolicyFlowSettings.apply {
                    isEnabled = true
                    privacyPolicyUri = Uri.parse(Urls.privacy)
                    termsOfServiceUri = Uri.parse(Urls.terms)
                }
            }
            .build()

It doesn't happen if I don't minify.
It must be a R8 / proguard issue

@vudt98
Copy link

vudt98 commented Apr 22, 2024

Same issue while trying to configure settings

val initConfig = AppLovinSdkInitializationConfiguration.builder(AppLovinKey.appLovinKey, context)
            .setMediationProvider(AppLovinMediationProvider.MAX)
            .configureSettings { settings ->
                settings.termsAndPrivacyPolicyFlowSettings.apply {
                    isEnabled = true
                    privacyPolicyUri = Uri.parse(Urls.privacy)
                    termsOfServiceUri = Uri.parse(Urls.terms)
                }
            }
            .build()

It doesn't happen if I don't minify. It must be a R8 / proguard issue

I don't think so, because today I also encountered this error while testing with the debug version that doesn't use R8 and minify. But it's really difficult to reproduce it.

@christophercong
Copy link
Contributor

Hey all, we have a fix for this going out in next release. In the meantime, the work-around is to not call AppLovinSdk.getInstance(context) until you are ready to initialize the SDK (with the call to - initialize

@adurandet
Copy link

adurandet commented Apr 23, 2024

@christophercong not sure to understand your workaround.

In my code, AppLovinSdk.getInstance(context) is the last call I am doing.

        val initConfig = AppLovinSdkInitializationConfiguration.builder(AppLovinKey.appLovinKey, context)
            .setMediationProvider(AppLovinMediationProvider.MAX)
            .configureSettings { settings ->
                settings.termsAndPrivacyPolicyFlowSettings.apply {
                    isEnabled = true
                    privacyPolicyUri = Uri.parse(Urls.privacy)
                    termsOfServiceUri = Uri.parse(Urls.terms)
                }
            }
            .build()

        AppLovinSdk.getInstance(context)
            .initialize(initConfig) {
                _isInitialized.value = true
            }

@adurandet
Copy link

adurandet commented Apr 23, 2024

Just to add more info. I tried to initiliaze the terms and pricacy using the json integration (as per your documentation) and I am still facing the issue.

I think it is not be the same issue as the isVerboseLoggingEnable() as the logs are not the same. I have opened a separate issue.

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
       at com.applovin.impl.r4.a(SourceFile:1601)
       at com.applovin.impl.r4.a(SourceFile:2963)
       at com.applovin.impl.r4.a(SourceFile:2259)
       at android.os.Handler.handleCallback(Handler.java:959)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loopOnce(Looper.java:232)
       at android.os.Looper.loop(Looper.java:317)
       at android.app.ActivityThread.main(ActivityThread.java:8501)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
[PersistentPostbackQueueSaveTask] Postbacks queue file does not exist.

@BinaryCores
Copy link
Author

Any update on this? When it will be resolved?

@christophercong
Copy link
Contributor

Hi all, this has been resolved in the new the Android SDK release 12.5.0. Note: to configure the terms/privacy settings pre-init, we have changed the API to the following:

val settings = AppLovinSdk.getInstance(this).settings
settings.termsAndPrivacyPolicyFlowSettings.apply {
  isEnabled = true
  privacyPolicyUri = Uri.parse("«https://your_company_name.com/privacy_policy»")
  termsOfServiceUri = Uri.parse("«https://your_company_name.com/terms_of_service»")
}

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

5 participants