Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
2
Question by TheCrimsonMoon · Jan 09, 2020 at 08:19 AM · androiduiadsadmobadvertising

AdMob RewardBasedVideoAd, App crash after reward video closed (Android)

Hi

I'm working on an Android game and I want to add AdMob ads to my game. I have added Banner and interstitial Views but the problem in RewardBasedVideoAd specifically on OnAdRewarded event, when the user closes the video return to the game to earn his reward game crash immediately.

After many tries, I found the code which crashes the game, gameObject.SetActive(true) And gameObject.SetActive(false), is the problem, when I deactivate game panel UI and active reward panel UI game crash immediately.

How can I solve it? why game crash when I use gameObject.SetActive ?


code which make app crashed

 public void HandleOnAdRewarded(object sender, EventArgs args)
 {
    gamePanel.SetActive(false);
    rewardPanel.SetActive(true);
 }

request reward code

 public void RequestReward()
 {
    AdRequest request = new AdRequest().Builder().Build();
    this.rewardAd.LoadAd(request, rewardAdId);
 
    rewardAd.OnAdLoaded += this.HandleOnRewardAdLoaded;
    rewardAd.OnAdRewarded += this.HandleOnAdRewarded;
    rewardAd.OnAdClosed += this.HandleOnRewardAdClosed;
 }

handlers

 public void HandleOnRewardAdLoaded(object sender, EventArgs args)
 {
    if(rewardAd.IsLoaded())
    {
        rewardAd.Show();
    }
 }
 
 public void HandleOnAdRewarded(object sender, EventArgs args)
 {
     gamePanel.SetActive(false);
     rewardPanel.SetActive(true);
 }
 
 public HandleOnRewardAdClosed(object sender, EventArgs args)
 {
     rewardAd.OnAdLoaded -= this.HandleOnRewardAdLoaded;
     rewardAd.OnAdRewarded -= this.HandleOnAdRewarded;
     rewardAd.OnAdClosed -= this.HandleOnRewardAdClosed;
 }







Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

5 Replies

· Add your reply
  • Sort: 
avatar image
4
Best Answer

Answer by TheCrimsonMoon · Jan 11, 2020 at 10:39 AM

for anyone has this issue

the cause of the problem is TextMesh Pro package

JUST UNINSTALL IT.

Comment
Add comment · Show 5 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image neowedge · Feb 18, 2020 at 10:54 AM 2
Share

I had the same problem. There's some bug in T$$anonymous$$P creating the mesh in the same frame as the app back from background in some cases (I don't know when exactly). There are two ways to avoid it if you don't want to remove T$$anonymous$$P: - Do not make logic in the OnRewardedAdClosed frame, ins$$anonymous$$d of that you can wait one frame or 0.1 seconds. - $$anonymous$$eep it the T$$anonymous$$P gameobject active before showing the ad. You can make several tricks in order to do not show it, but once the gameobject has been activated, you can deactivate and activate again without problems.

avatar image Eloren · Feb 19, 2020 at 10:34 AM 0
Share

Need to remove T$$anonymous$$P and then restart Unity

avatar image Eloren · Feb 19, 2020 at 10:45 AM 0
Share

Didn't helped for me. One RewardBasedVideoAd works, but the second from other script causes crash

avatar image $$anonymous$$ · Jul 15, 2020 at 05:52 AM 0
Share

I was also looking for it, never thought of T$$anonymous$$Pro but Im using it. When I used Ienumator and coRoutine, it worked.

avatar image gzckrg1 · Sep 12, 2020 at 02:31 PM 0
Share

That worked for me as well. I used WaitForEndOfFrame() for coroutine. Thanks for the tip.

avatar image
4

Answer by cobrecht · Apr 10, 2020 at 05:48 AM

Hello there, I've been struggling with this one for weeks now. I tried various package and unity versions without success. Removing logic from callbacks or disabling TMP like some people suggested did not seemed to reduce my crash rate at first.

Finally I found out that both of them cause crashes.

So here is my little understanding and workarround for it : Admob's package for Unity runs on a separated thread than Unity to pause it while executing the Ad. Executing logic while in Admob's thread can have side effects (I was using UnityEvent and Dotween in the callback). I now set a simple bool is the callbacks when the Ad is done and check it in the Update() loop to execute my logic, to be run by the Unity thread.

Also if you are using Text Mesh Pro, it also seems to crash sometimes when rendering text during the first frame after the Ad. On a slow phone I observed a short lapse of time where Unity rendered a part of the scene before the crash happened, and the part not rendered was the UI with TMP. So I deactivated the UI just before the ad is called and activated back 0.1 sec after and it seems to work.

Hope it helps, cheers.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image IrtezaRmasud · Aug 01, 2021 at 08:03 PM 0
Share

Oh! Thanks man!!!! I was pulling my hair for 5 to 6 days with reward ad behavior in admob events (Specially In on ad closed, No function called, coroutine wasn't working.It's crashed everytime, sometimes show the audio source error.) First I was thinking coroutine won't work in there. After that I prepared normal function and called those in HandleOnadClosed to check if my user force close the ad without watching. U, hu not worked. You were r8 some stupid Admob event's doesn't run in main unity thread, it runs on separate thread. Solved it by only passing some nullable bool in events and doing rest of the work in update function.

avatar image carboro · Dec 23, 2021 at 08:19 PM 0
Share

bro you mean disable Canvas before reword video and showit after video is done??

avatar image
1

Answer by ijeanpierrebp · Apr 04, 2021 at 08:25 PM

the solution tah work for me was remove Text Mesh Pro

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by dinesh-dias · Jun 14, 2021 at 08:16 PM

I found the same issue and the fix was to remove all the Textmesh from the ui which which admob script attached.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by SMahdiFaghih · Apr 06 at 11:45 AM

I had the same issue and in my case i was changing UI and sending requests to server after OnAdClosed and OnRewardEarned and so the crash happens when i close the ad.

I think that the reason is that these changes actually apply before coming back to the app and in that time the app is Paused. So i fixed it by using bool to know that if OnAdClosed and OnRewardEarned are called that then change UI and send requests in the OnApplicationPause function like the code below.

Note: I send analytics events in OnAdClosed and OnRewardEarned and they work fine without any problem or crash.

     private void OnApplicationPause(bool isPaused)
     {
         if (!isPaused)
         {
             if (_isRewardEarned)
             {
                 _onEarnedRewardEvent?.Invoke();
             }
             if (_isRewardedAdClosed)
             {
                 _onRewardedAdClosedEvent?.Invoke();
                 InitializeNextRewardedAd();
             }
         }
     }
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

333 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

admob related question 2 Answers

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/content/ContextCompat; - Unity Android Build Error 1 Answer

Admob rewarded video working in Unity but not on android device. 0 Answers

AdMob Rewarded Video Ad 0 Answers

Unity[Android] AdMob error 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges