所以我正在使用google_mobile_ads 插件版本0.12.1+1
(这是目前最新的版本)。
我遇到了一个奇怪的错误,在过去的 3 天里我尝试了很多方法来修复它,但没有任何成功。
请注意,它正在运行,并且该应用程序已经运行了几个月以上,因此所有 AdMob 凭据都是正确的,我已经多次重新检查过。
所以我不知道到底发生了什么,但我没有其他地方可以找到我最终在这里发布问题的解决方案。我希望有人可以帮助给我指点。
调用时刻rewardedAd.load()
,应用程序崩溃并显示错误消息如下:
E/AndroidRuntime(27180): FATAL EXCEPTION: main
E/AndroidRuntime(27180): Process: com.me.app, PID: 27180
E/AndroidRuntime(27180): java.lang.InstantiationError: com.google.android.gms.ads.rewarded.RewardedAd
E/AndroidRuntime(27180): at io.flutter.plugins.googlemobileads.FlutterRewardedAd.createRewardedAd(FlutterRewardedAd.java:154)
E/AndroidRuntime(27180): at io.flutter.plugins.googlemobileads.FlutterRewardedAd.load(FlutterRewardedAd.java:95)
E/AndroidRuntime(27180): at io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.onMethodCall(GoogleMobileAdsPlugin.java:330)
E/AndroidRuntime(27180): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/AndroidRuntime(27180): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/AndroidRuntime(27180): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818)
E/AndroidRuntime(27180): at android.os.MessageQueue.nativePollOnce(Native Method)
E/AndroidRuntime(27180): at android.os.MessageQueue.next(MessageQueue.java:336)
E/AndroidRuntime(27180): at android.os.Looper.loop(Looper.java:197)
E/AndroidRuntime(27180): at android.app.ActivityThread.main(ActivityThread.java:8167)
E/AndroidRuntime(27180): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(27180): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
E/AndroidRuntime(27180): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
I/Process (27180): Sending signal. PID: 27180 SIG: 9
在我的代码中:
MobileAds.instance.initialize()
被调用,main.dart
一旦初始化完成,RewardedAd
就会像这样初始化:
_rewardedAd = RewardedAd(
adUnitId: AdManager.rewardedAdUnitId,
listener: AdListener(
onRewardedAdUserEarnedReward: (RewardedAd ad, RewardItem reward) {
print('Rewarded Ad successful: $ad reward: $reward');
// Give reward to user
},
onAdLoaded: (Ad ad) {
setState(() {
isAdsLoading = false;
});
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Error Rewarded Video Ad failed to load: $error');
},
),
request: AdRequest())
..load();
如果我删除它,..load()
它不会崩溃,但它永远不会加载。再一次,这之前没有崩溃。
我为解决此问题所做的工作:
- 我重新检查了所有凭据:App ID 和 Ad unit Id 都是正确的。
- 再次查看文档以确保我
AndroidManifest.xml
的设置正确。 - 尝试了 0.12.1+1(空安全)和 0.11.0+4(此版本是用于实时版本)的版本。
- 尝试了调试和发布模式。
- 在 Android 虚拟设备和真实设备中都进行了尝试。
- 还有很多其他的我已经不记得了。
注意:实时版本运行良好。我已经尝试将应用程序上传到封闭测试版本,但它仍然崩溃。
这flutter run --verbose
这是一个很长的日志,所以我在这里只包括错误部分,但是你可以在这里阅读所有完整的日志
[ +35 ms] E/AndroidRuntime(31757): FATAL EXCEPTION: main
[ ] E/AndroidRuntime(31757): Process: com.me.app, PID: 31757
[ ] E/AndroidRuntime(31757): java.lang.InstantiationError:
com.google.android.gms.ads.rewarded.RewardedAd
[ ] E/AndroidRuntime(31757): at
io.flutter.plugins.googlemobileads.FlutterRewardedAd.createRewardedAd(FlutterRewardedAd.java:154)
[ ] E/AndroidRuntime(31757): at
io.flutter.plugins.googlemobileads.FlutterRewardedAd.load(FlutterRewardedAd.java:95)
[ ] E/AndroidRuntime(31757): at
io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.onMethodCall(GoogleMobileAdsPlugin.java:330)
[ ] E/AndroidRuntime(31757): at
io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
[ ] E/AndroidRuntime(31757): at
io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
[ ] E/AndroidRuntime(31757): at
io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818)
[ ] E/AndroidRuntime(31757): at android.os.MessageQueue.nativePollOnce(Native Method)
[ ] E/AndroidRuntime(31757): at android.os.MessageQueue.next(MessageQueue.java:336)
[ ] E/AndroidRuntime(31757): at android.os.Looper.loop(Looper.java:197)
[ ] E/AndroidRuntime(31757): at android.app.ActivityThread.main(ActivityThread.java:8167)
[ ] E/AndroidRuntime(31757): at java.lang.reflect.Method.invoke(Native Method)
[ ] E/AndroidRuntime(31757): at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
[ ] E/AndroidRuntime(31757): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
[ +33 ms] I/Process (31757): Sending signal. PID: 31757 SIG: 9
[ +261 ms] Service protocol connection closed.
[ ] Lost connection to device.
[ +2 ms] executing: /Volumes/ME/Applications/Android/sdk/platform-tools/adb -s 5a53414a33573398 forward
--list
[ +11 ms] Exit code 0 from: /Volumes/ME/Applications/Android/sdk/platform-tools/adb -s 5a53414a33573398
forward --list
[ ] 5a53414a33573398 tcp:59154 tcp:34485
[ +1 ms] executing: /Volumes/ME/Applications/Android/sdk/platform-tools/adb -s 5a53414a33573398 forward
--remove tcp:59154
[ +13 ms] DevFS: Deleting filesystem on the device
(file:///data/user/0/com.me.app/code_cache/my_appCGPZRY/my_app/)
[ +257 ms] Ignored error while cleaning up DevFS: TimeoutException after 0:00:00.250000: Future not completed
[ +3 ms] executing: /Volumes/ME/Applications/Android/sdk/platform-tools/adb -s 5a53414a33573398 forward
--list
[ +16 ms] Exit code 0 from: /Volumes/ME/Applications/Android/sdk/platform-tools/adb -s 5a53414a33573398
forward --list
[ +2 ms] "flutter run" took 140,682ms.
[ +4 ms] Running shutdown hooks
[ ] Shutdown hook priority 4
[ +1 ms] Shutdown hooks complete
[ ] exiting with code 0
这flutter analyze
Analyzing my_app...
No issues found! (ran in 6.1s)
这flutter doctor -v
[✓] Flutter (Channel stable, 2.0.5, on macOS 11.2.2 20D80 darwin-x64, locale en-US)
• Flutter version 2.0.5 at /Users/ME/development/flutter
• Framework revision adc687823a (12 days ago), 2021-04-16 09:40:20 -0700
• Engine revision b09f014e96
• Dart version 2.12.3
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Volumes/ME/Applications/Android/sdk
• Platform android-30, build-tools 30.0.2
• ANDROID_HOME = /Volumes/ME/Applications/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.4, Build version 12D4e
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.55.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.8.0
[✓] Connected device (3 available)
• SM G960U1 (mobile) • 5a5341 • android-arm64 • Android 10 (API 29)
• ME iPho (mobile) • b3ebbe938628 • ios • iOS 14.4.2
• Chrome (web) • chrome • web-javascript • Google Chrome
90.0.4430.85
• No issues found!