Giter VIP home page Giter VIP logo

godot-admob's Introduction

AdMob

This is the AdMob module for Godot Engine (https://github.com/okamstudio/godot)

  • Android & iOS
  • Banner
  • Interstitial
  • Rewarded Video

How to use

Android

To use this module you'll need a custom template for Android. You can build it by yourself or download a precompiled one. Another option available for Godot 3.2+ is the new Android plugin system, much easier to use (no recompilation needed). You can find a port of this module using this system here.

Compiling the template (First Option)

This is harder, but you'll have more control over the building process. You can, for example, include any other module you want. For that, do the following steps:

  • Clone or download this repository.
  • Clone or download the Godot Engine repository. One important note here is that this must match the same version of the Godot editor you're using to develop your game.
  • Drop the "admob" directory inside the "modules" directory on the Godot source.
  • Recompile the android export template following the official instructions.

Using precompiled templates (Second Option)

If you don't want or can't build the template by yourself, you can find a precompiled template with this module here. Go to the release tab and download the zip file.

Export configuration

  • In your project goto Export > Target > Android:
    • Options:
      • Custom Package:
        • place the template apk you had compiled (or downloaded)
      • Permissions on:
        • Access Network State
        • Internet

iOS

Configuring your game

Android

To enable the module on Android, add the path to the module to the "modules" property on the [android] section of your engine.cfg file (Godot 2) or project.godot (Godot 3). It should look like this:

[android]
modules="org/godotengine/godot/GodotAdMob"

If you have more separate by comma.

iOS

Follow the exporting to iOS official documentation.

Godot 2

Just make sure you're using your custom template (compiled in the previous step), for that rename it to "godot_opt.iphone" and replace the file with same name inside the Xcode project.

Godot 3

  • Tutorial: https://www.youtube.com/watch?v=s5sNrOM3Oeo
  • Export your project from Godot, it'll create an Xcode project;
  • Copy the library (.a) you have compiled following the official documentation inside the exported Xcode project. You must override the 'your_project_name.a' file with this file.
  • Copy the following frameworks inside the exported Xcode project folder and link it using the "Link Binary with Libraries" option. In the case of xcframework, framework folder exists in the folder like GoogleUtilities.xcframework/ios-armv7_arm64/GoogleUtilities.framework;
    • GoogleMobileAds.framework
    • GoogleAppMeasurement.framework
    • GoogleUtilities.framework
    • PromisesObjC.framework
    • nanopb.framework
  • Add the following frameworks to the project:
    • StoreKit
    • GameKit
    • CoreVideo
    • AdSupport
    • MessageUI
    • CoreTelephony
    • CFNetwork
    • MobileCoreServices
    • SQLite (libsqlite3.0.tbd)
  • If you are using the version 7.65.0 >=, then also add this framework?
    • JavaScriptCore
  • Add the -ObjC linker flag to Other Linker Flags in your project's build settings: -ObjC
  • Update your GAMENAME-Info.plist file, add a GADApplicationIdentifier key with a string value of your AdMob app ID: plist

API Reference (Android & iOS)

The following methods are available:

# Init AdMob
# @param bool isReal Show real ad or test ad
# @param int instance_id The instance id from Godot (get_instance_ID())
init(isReal, instance_id)

# Init AdMob with additional Content Rating parameters (Android and iOS)
# @param bool isReal Show real ad or test ad
# @param int instance_id The instance id from Godot (get_instance_ID())
# @param boolean isForChildDirectedTreatment If isForChildDirectedTreatment is true, maxAdContetRating will be ignored (your maxAdContentRating would can not be other than "G")
# @param boolean isPersonalized Ads are personalized by default, GDPR compliance within the European Economic Area may require you to disable personalization."
# @param String maxAdContentRating It's value must be "G", "PG", "T" or "MA". If the rating of your app in Play Console and your config of maxAdContentRating in AdMob are not matched, your app can be banned by Google.
initWithContentRating(isReal, instance_id, isForChildDirectedTreatment, isPersonalized, maxAdContentRating)


# Banner Methods
# --------------

# Load Banner Ads (and show inmediatly)
# @param String id The banner unit id
# @param boolean isTop Show the banner on top or bottom
loadBanner(id, isTop)

# Show the banner
showBanner()

# Hide the banner
hideBanner()

# Resize the banner (when orientation change for example)
resize()

# Get the Banner width
# @return int Banner width
getBannerWidth()

# Get the Banner height
# @return int Banner height
getBannerHeight()

# Callback on ad loaded (Banner)
_on_admob_ad_loaded()

# Callback on ad network error (Banner)
_on_admob_network_error()

# Callback for banner on ad failed to load (other than network error)
_on_admob_banner_failed_to_load()

# Interstitial Methods
# --------------------

# Load Interstitial Ads
# @param String id The interstitial unit id
loadInterstitial(id)

# Show the interstitial ad
showInterstitial()

# Callback for interstitial ad fail on load
_on_interstitial_not_loaded()

# Callback for interstitial loaded
_on_interstitial_loaded

# Callback for insterstitial ad close action
_on_interstitial_close()

# Rewarded Videos Methods
# -----------------------

# Load rewarded videos ads
# @param String id The rewarded video unit id
loadRewardedVideo(id)

# Show the rewarded video ad
showRewardedVideo()

# Callback for rewarded video ad left application
_on_rewarded_video_ad_left_application()

# Callback for rewarded video ad closed 
_on_rewarded_video_ad_closed()

# Callback for rewarded video ad failed to load
# @param int errorCode the code of error
_on_rewarded_video_ad_failed_to_load(errorCode)

# Callback for rewarded video ad loaded
_on_rewarded_video_ad_loaded()

# Callback for rewarded video ad opened
_on_rewarded_video_ad_opened()

# Callback for rewarded video ad reward user
# @param String currency The reward item description, ex: coin
# @param int amount The reward item amount
_on_rewarded(currency, amount)

# Callback for rewarded video ad started do play
_on_rewarded_video_started()

Known Issues

  • You can't use Rewarded Video and any other ad type (Banner and/or Interstitial) at same time on iOS or your app will crash with the error Multiple locks on web thread not allowed when the Reward is closed. To fix this, we need help from an iOS developer as I don't have any Apple hardware to do it by myself. You can see more details about this issue here. You can find a workaround for this issue here.

Troubleshooting

  • First of all, please make sure you're able to compile the custom template without the Admob module, this way we can isolate the cause of the issue.

  • Using the Xcode debug console for iOS and logcat for Android is the best way to troubleshoot most issues. You can filter Godot only messages with logcat using the command: adb logcat -s godot

  • ERROR_CODE_NO_FILL is a common issue with Admob, but out of the scope to this module. Here's the description on the API page: ERROR_CODE_NO_FILL: The ad request was successful, but no ad was returned due to lack of ad inventory.

  • If you're getting the error Undefined symbols for architecture armv7 compiling for iOS, you should try open up the project in xcode, go to "General" tab, remove "GoogleMobileAds.framework" from frameworks, then re-add it. Should build then. Also, make sure you have directory godot/modules/admob/ios/lib added to framework search path (“Build Settings”). More info here.

References

Based on the work of:

License

MIT license

godot-admob's People

Contributors

dala00 avatar elilan avatar fogine avatar gumaciel avatar huehue-tangerine avatar jlopezcur avatar kermer avatar mavhod avatar minhanhhere avatar pchasco avatar shin-nil avatar valeryn4 avatar yamshing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-admob's Issues

iOS interstitial ad crash

I have a crash when trying to show an interstitial ad on iOS.

Here is the output when the crash occurs:

2018-01-12 11:45:07.400 godot_opt.iphone[730:439841] Calling showInterstitial
2018-01-12 11:45:07.457 godot_opt.iphone[730:439841] interstitialWillPresentScreen
2018-01-12 11:45:07.683623-0500 godot_opt.iphone[730:439841] *** Assertion failure in -[UIView _nsis_center:bounds:inEngine:forLayoutGuide:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3698.33.7/NSLayoutConstraint_UIKitAdditions.m:3347
2018-01-12 11:45:07.707215-0500 godot_opt.iphone[730:439841] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error in compatibility flow'
*** First throw call stack:
(0x18121e364 0x180464528 0x18121e238 0x181bb97f4 0x18b2db0bc 0x18b537fec 0x18a8c1a18 0x18aab37e4 0x18a7d1f00 0x185261998 0x185265b20 0x1851d236c 0x1851f9b90 0x18a7c75c8 0x1811c5edc 0x1811c3894 0x1811c3e50 0x1810e3e58 0x182f90f84 0x18a83867c 0x10058d0cc)
libc++abi.dylib: terminating with uncaught exception of type NSException

Add this module to AssetLib

Can you put this module in AssetLib? This way it will be easier for new developers to use the module to export their games.

iOS - Closing Interstial ad crashes

OS target (Android/iOS):
iOS

Godot version:
3.0.6-stable

Issue description:
Closing interstial ad (even without banner and reward) crashes.

Log:

objc[3762]: Class VCWeakObjectHolder is implemented in both /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/Frameworks/ViceroyTrace.framework/ViceroyTrace (0x1309924d0) and /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/AVConference (0x130812e38). One of the two will be used. Which one is undefined.
*********** main.m
running app main
after init super 0x7fbc84c18480
******** screen size 750, 1334
after init gles 0x7fbc84c18480
******** adding observer for sound routing changes
******** adding observer for keyboard show/hide
glview is 0x7fbc84c18480
Path: /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/E2014EC5-8D4C-4F0C-9E28-F43C2258AAC2/MyApp.app
godot_iphone /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/E2014EC5-8D4C-4F0C-9E28-F43C2258AAC2/MyApp.app/MyApp
cwd /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/E2014EC5-8D4C-4F0C-9E28-F43C2258AAC2/MyApp.app
os created
setting data dir to /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Data/Application/A93331DF-DD6A-4564-8BD9-CFB38EDF66FE/Documents from /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Data/Application/A93331DF-DD6A-4564-8BD9-CFB38EDF66FE/Documents
setup 0
cadisaplylink: 1start animation!
******** screen size 750, 1334
2018-12-31 06:52:58.600307-0800 MyApp[3762:73689] [App] UIWindow->__registeredPreCommitHandler was abandoned !!!! this would have caused a cascade of blown fences - proactively clearing but a bug exists here somewhere between UIKit and CoreAnimation
2018-12-31 06:52:58.600533-0800 MyApp[3762:73689] +[CATransaction synchronize] called within transaction
2018-12-31 06:52:58.602907-0800 MyApp[3762:73689] +[CATransaction synchronize] called within transaction
2018-12-31 06:52:58.607298-0800 MyApp[3762:73689] +[CATransaction synchronize] called within transaction
2018-12-31 06:52:58.612370-0800 MyApp[3762:73775] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-12-31 06:52:58.642269-0800 MyApp[3762:73751] Could not successfully update network info during initialization.
2018-12-31 06:52:58.650072-0800 MyApp[3762:73775] [MC] Reading from private effective user settings.
2018-12-31 06:52:58.708353-0800 MyApp[3762:73689] OpenGL ES 3.0 Renderer: Apple Software Renderer
2018-12-31 06:52:58.809745-0800 MyApp[3762:73812] [AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData:  AudioObjectGetPropertyData: no object with given ID 0
2018-12-31 06:52:58.995223-0800 MyApp[3762:73689] Boot splash path: res://bootsplash.png
2018-12-31 06:52:59.705754-0800 MyApp[3762:73689] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.705941-0800 MyApp[3762:73689]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.706434-0800 MyApp[3762:73689] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.706626-0800 MyApp[3762:73689]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.707112-0800 MyApp[3762:73689] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.707259-0800 MyApp[3762:73689]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-31 06:52:59.894216-0800 MyApp[3762:73689] [Error] _authenticateUsingAlert:Faied to authenticate player with existing credentials.Error: Error Domain=GKErrorDomain Code=6 "The requested operation could not be completed because local player has not been authenticated." UserInfo={NSLocalizedDescription=The requested operation could not be completed because local player has not been authenticated.}
2018-12-31 06:52:59.901928-0800 MyApp[3762:73689] [Error] startAuthenticationForExistingPrimaryPlayer:Failed to Authenticate player.Error: Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user.}
2018-12-31 06:52:59.902263-0800 MyApp[3762:73689] [Error] authenticationDidCompleteWithError: Authentication failed for player with error: Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user.}
2018-12-31 06:53:20.050508-0800 MyApp[3762:73689] Calling loadInterstitial
2018-12-31 06:53:20.084278-0800 MyApp[3762:73689] <Google> To get test ads on this device, set: request.testDevices = @[ kGADSimulatorID ];
2018-12-31 06:53:20.085941-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.086092-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.086229-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.086443-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.100335-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.100501-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.100632-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.100918-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.168226-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.168457-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.168823-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.169431-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.244079-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.244955-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.246437-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.246995-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.475147-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.475332-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.475459-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:20.475625-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.295466-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.296328-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.297023-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.297685-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.358064-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.358516-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.358766-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.359131-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.438627-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.438864-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.439028-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.439519-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.499818-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.500055-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.500633-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.501237-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.569220-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.569591-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.570229-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.570555-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.630028-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.630344-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.630553-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.631196-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.752917-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.753099-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.824898-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.825128-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.894764-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.895202-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.958660-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:21.959913-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.035858-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.036515-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.163585-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.163856-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.250349-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.250776-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.335923-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.336865-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.450942-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.451194-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.454259-0800 MyApp[3762:73979] WF: === Starting WebFilter logging for process MyApp
2018-12-31 06:53:22.454795-0800 MyApp[3762:73979] WF: _userSettingsForUser : (null)
2018-12-31 06:53:22.455998-0800 MyApp[3762:73979] WF: _WebFilterIsActive returning: NO
2018-12-31 06:53:22.516014-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.516190-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.579123-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.579849-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.643173-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.643554-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.713867-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.714391-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.777271-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:22.777662-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:24.105854-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:24.106029-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:28.795992-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:28.796239-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:32.517342-0800 MyApp[3762:73689] interstitialDidReceiveAd
2018-12-31 06:53:33.618078-0800 MyApp[3762:73976] TIC Read Status [9:0x0]: 1:57
2018-12-31 06:53:33.618288-0800 MyApp[3762:73976] TIC Read Status [9:0x0]: 1:57
2018-12-31 06:53:33.619224-0800 MyApp[3762:73976] TIC Read Status [10:0x0]: 1:57
2018-12-31 06:53:33.619435-0800 MyApp[3762:73976] TIC Read Status [10:0x0]: 1:57
2018-12-31 06:53:34.749820-0800 MyApp[3762:73689] GodotAdmob Module already initialized
2018-12-31 06:53:34.750198-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:34.750583-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:38.962986-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:38.963221-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:42.826964-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:42.827137-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:48.353641-0800 MyApp[3762:73689] Calling showInterstitial
2018-12-31 06:53:48.355029-0800 MyApp[3762:73689] interstitialWillPresentScreen
2018-12-31 06:53:48.361034-0800 MyApp[3762:73689] **ERROR**: Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:48.362437-0800 MyApp[3762:73689]    At: servers/visual/visual_server_canvas.cpp:412:canvas_item_add_polyline() - Condition ' p_points.size() < 2 ' is true.
2018-12-31 06:53:49.258096-0800 MyApp[3762:73975] [avas] AVAudioSessionUtilities.h:112:GetProperty: AudioSessionGetProperty ('sash') failed with error: 'pty?'
2018-12-31 06:53:49.258328-0800 MyApp[3762:73975] [avas] AVAudioSessionUtilities.h:127:GetProperty_DefaultToZero: AudioSessionGetProperty ('sash') failed with error: 'pty?'
2018-12-31 06:53:58.186897-0800 MyApp[3762:73689] interstitialWillDismissScreen
2018-12-31 06:53:58.701520-0800 MyApp[3762:73689] interstitialDidDismissScreen
(lldb) 

How can I use "max_ad_content_rating" parameter?

OS target (Android/iOS):

Godot version:

Issue description:
Hello. Thanks for this module. I have two questions.

  1. I am new here and I dont know if I can create a question that is not an issue. Therefore, I created an issue. Is it right?
  2. On the Google documentation about AdMob there is a reference to "max_ad_content_rating" parameter in each request to AdMob. Can I use this parameter in this module in some way?
    Thanks in advance.

Godot 3.0 compatibility

Is this compatible with Godot 3.0 ? If not , can you update it so that it is compatible with godot 3.0.

Update template

Hello! Thanks a lot for your modules! I have some issues with compilation... I suppose the issues are on my side.
Is there a chance you can update the templates for godot 2.1.4-stable? You will save my day ;)

Gradlew Build Error

OS target (Android/iOS): Android

Godot version: 3.0.6

Issue description:
Hello,

When I try to build android template with my Windows 10 PC, I'm getting error.
My java version is 10.0.2

When I try with
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip I'm getting "Could not determine java version from '10.0.2'." error. And then I try with gradle-4.10.1-all.zip I'm gettin this error:

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'java'.

Failed to notify project evaluation listener.
Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

  • Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is:
    org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'java'.
    at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:79)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:73)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:54)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:200)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:110)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:68)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:687)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:140)
    at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:60)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:41)
    at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:274)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:182)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:141)
    at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
    at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
    at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
    at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
    at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
    at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
    at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
    at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener.
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:86)
    at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
    at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
    at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
    at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy30.afterEvaluate(Unknown Source)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:187)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:184)
    at org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1418)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:193)
    ... 91 more
    Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.android.sdklib.repository.AndroidSdkHandler
    at com.android.builder.sdk.DefaultSdkLoader.init(DefaultSdkLoader.java:377)
    at com.android.builder.sdk.DefaultSdkLoader.getSdkInfo(DefaultSdkLoader.java:360)
    at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:133)
    at com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.java:671)
    at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:570)
    at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1$1.run(DefaultListenerBuildOperationDecorator.java:155)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:58)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:152)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction.execute(DefaultListenerBuildOperationDecorator.java:149)
    at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)
    at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
    at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
    at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
    ... 101 more

  • Get more help at https://help.gradle.org

BUILD FAILED in 0s

Admob ios xcode compile error

OS target (iOS):
Im getting this error message when I try to build my project with admob for the iOS

Godot version:
3.0.6

Issue description:

Undefined symbols for architecture arm64:
"OBJC_CLASS$_GADRewardBasedVideoAd", referenced from:
objc-class-ref in application_name.a(AdmobRewarded.iphone.opt.debug.arm64.o)
"OBJC_CLASS$_GADInterstitial", referenced from:
objc-class-ref in application_name.a(AdmobInterstitial.iphone.opt.debug.arm64.o)
"OBJC_CLASS$_GADBannerView", referenced from:
objc-class-ref in application_name.a(AdmobBanner.iphone.opt.debug.arm64.o)
"OBJC_CLASS$_GADRequest", referenced from:
objc-class-ref in application_name.a(AdmobBanner.iphone.opt.debug.arm64.o)
objc-class-ref in application_name.a(AdmobInterstitial.iphone.opt.debug.arm64.o)
objc-class-ref in application_name.a(AdmobRewarded.iphone.opt.debug.arm64.o)
"_kGADAdSizeSmartBannerPortrait", referenced from:
-[AdmobBanner loadBanner::] in application_name.a(AdmobBanner.iphone.opt.debug.arm64.o)
"_kGADAdSizeSmartBannerLandscape", referenced from:
-[AdmobBanner loadBanner::] in application_name.a(AdmobBanner.iphone.opt.debug.arm64.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Problem trying to compile Admob and Google play services

I'm trying to compile a version of the template for AdMob and Google Play Services. I was successful in compiling the Google Play Services version in this repository.

https://github.com/kloder-games/godot-gpgs

Now I'm trying to compile AdMob so I can use both modules in my game. But when I give a gradlew build.

I get this error:

Execution failed for task ': transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom / google / android / gms / internal / zztd;

Could you help me? 😅

Issue when running the gradlew build

I've successfully compiled the engine with scons with the admob module included.

When running the ./gradlew build command inside the /platform/android/java directory, I'm getting the error back:
`

Task :compileDebugJavaWithJavac
/home/user/godot/godot-master/modules/admob/android/GodotAdMob.java:67: error: <anonymous org.godotengine.godot.GodotAdMob$1$1> is not abstract and does not override abstract method onRewardedVideoCompleted() in RewardedVideoAdListener
{
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
Compilation failed; see the compiler error output for details.
`

I've tried deleting my gradle cache and reinstalling dependencies but that solved nothing.

I managed to build gradle successfully when I had no third party/custom modules inserted into the core.

Have I missed something really simple? I've made sure the dependencies are all as per the guide.

Any help would be great, thanks.

INSTALL_FAILED_CONFLICTING_PROVIDER

OS target (Android/iOS):
Android 7.0

Godot version:
v3.0.6-stable

Issue description:
I compiled custom packages(debug and release) from godot and godot-admob sources.
And I build my application packages for android with the custom packages(debug and release).
Both packages worked well with ads in my tablet.
The next, I build my another application with the same custom packages(debug and release).
When I was going to install the app in my tablet, it ended with error messages below.

[INSTALL_FAILED_CONFLICTING_PROVIDER: Package couldn't be installed in /data/app/net.bubudge.capital-1: Can't install because provider name com.godot.game.mobileadsinitprovider (in package net.bubudge.capital) is already used by net.bubudge.uspresidents]

So I uninstalled my first application from my tablet, and I tried to install my second application.
It worked well with ads in my tablet.

I don't know how to change the provider name and how to fix this problem.
Could you help me?

Compilation Error: register_types.cpp not finding include file version_generated.gen.h

OS target (Android/iOS):
OSX & iOS

Godot version:
3.1 latest source from master branch today

Issue description:
I can build OSX Godot and iOS export modules fine. But when I add this module, I get compilation error unable to find "version_generated.gen.h" file:

[ 13%] Compiling ==> modules/admob/register_types.cpp
modules/admob/register_types.cpp:1:10: fatal error: 'version_generated.gen.h' file not found
#include <version_generated.gen.h>

I have the "admob" directory in the Godot "modules" directory and have dropped Google Mobile Ads SDK in the ios/lib dir.

version_generated.gen.h exists in godot/core directory. I have a completely clean build directory pulled from git today. I'm not familiar with scons so don't know where the include directories should be specified. Any help would be appreciated. Thanks!

Trying out for godot 3.0.2

Hi,
I'm interested in using this module
I tried this for Godot 3.0.2, but Engine.has_instance("AdMob") always returns false

I'm kind of new to Godot, so I would expect that my problem would be with the way i set it up.

I previously asked here: godotengine/godot#17521
but after i fixed it, it is still not working

Here are the steps:

  1. download
    https://github.com/kloder-games/godot-admob/tree/master/admob into admob folder
    https://github.com/godotengine/godot into ~/godot-3.0.2-stable
    put admob folder to ~/godot-3.0.2-stable/modules

  2. execute the following commands
    cd ~/godot-3.0.2-stable

scons platform=x11

scons platform=android target=release -j 4
cd platform/android/java
./gradlew build
cd ../../..

scons platform=android target=release_debug -j 4
cd platform/android/java
./gradlew build
cd ../../..

  1. execute godot.x11.tools.64
    create a new project and new main scene with its script
    Add the following to project.godot
    [android]
    modules="org/godotengine/godot/GodotAdMob"

  2. Select Project->Export->Android->Options
    add android_debug.apk and android_release.apk into Custom Package
    Enable permissions: Access Network State, Internet
    add Engine.has_instance("AdMob") into one the script you have
    and It returns false(expected true)

Thanks

couldn't find "libgodot_android.so"

OS target (Android/iOS):
Android

Godot version:
3.0.5

Issue description:
I'm sure I'm doing something wrong but I just can't figure out what it is. I have made an export template with admob included on the module folder. I was able to compile it (I am adding arm64v8 since I am targetting that architecture) and I was able to use it as an export.. For some reason, my app just start flickering on the godos splash screen when I'm starting. On logcat, I am getting the following

[DexPathList[[zip file "/data/app/org.syvernlab.myapp-_AzHS86tcW2TlX1XIlygGw==/base.apk"],nativeLibraryDirectories=[/data/app/org.syvernlab.myapp-_AzHS86tcW2TlX1XIlygGw==/lib/arm64, /data/app/org.syvernlab.myapp-_AzHS86tcW2TlX1XIlygGw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]] couldn't find "libgodot_android.so"

I'm wondering why it was unable to find it. I verified it is there on my source code. Do you have any suggestions on how to fix this?

NPE in resize()

I'm receiving a NullPointerException in the resize() method consistently when you hit the power button to turn off the screen while the game is playing, change the orientation while the screen is off, and then try to open the screen back up and resume. I'm still debugging, but this is the stack trace from multiple devices on Google Play crash analytics that led me to investigate:

java.lang.NullPointerException: 
  at org.godotengine.godot.GodotAdMob$6.run (GodotAdMob.java:255)
  at android.os.Handler.handleCallback (Handler.java:739)
  at android.os.Handler.dispatchMessage (Handler.java:95)
  at android.os.Looper.loop (Looper.java:148)
  at android.app.ActivityThread.main (ActivityThread.java:5480)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)

I tried wrapping layout and adView in null checks but then the error just propagated to AdParams:

12-05 09:57:10.881 16524 16524 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.widget.FrameLayout$LayoutParams.gravity' on a null object reference
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at org.godotengine.godot.GodotAdMob$6.run(GodotAdMob.java:263)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:739)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:148)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5417)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
12-05 09:57:10.881 16524 16524 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

I'm assuming I need to detect the nulls and reinitialize?

iOS Adomb crash -Multiple locks on web thread not allowed

OS target (Android/iOS):
iOS

Godot version:
3.0.6

Issue description:
Everything works well in android.
However, iOS has problems.
For example, an error occurs after Reward Video is terminated.

2018-11-13 04:30:20.350877+0900 hoonword[4062:184752] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
2018-11-13 04:30:20.374741+0900 hoonword[4062:185038] void _WebThreadLock(), 0x10c2ef040: Multiple locks on web thread not allowed! Please file a bug. Crashing now...
(lldb)

I am struggling with this problem for a few days, but I am not an iOS developer, so it is difficult. I would be very grateful if you gave me the answer.

Exporting android error with auto-load files

OS target (Android/iOS):
Android

Godot version:
Godot 3.0.6

Issue description:

Logcat output seems to conflict with autoloading files:

--------- beginning of system
--------- beginning of main
08-23 15:56:29.804 19519 19535 I godot : Loading module: org/godotengine/godot/GodotAdMob
08-23 15:56:29.828 19519 19535 I godot : OpenGL ES 3.0 Renderer: Mali-T760
08-23 15:56:30.666 19519 19535 E godot : SCRIPT ERROR: Parse Error: Unexpected token: ',':Node
08-23 15:56:30.666 19519 19535 E godot : At: res://utility/game.gdc:2:GDScript::load_byte_code() - Parse Error: Unexpected token: ',':Node
08-23 15:56:30.666 19519 19535 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.666 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:777:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.666 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.666 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:2127:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.666 19519 19535 E godot : ERROR: Failed loading resource: res://utility/game.gdc
08-23 15:56:30.666 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.666 19519 19535 E godot : ERROR: Can't autoload: res://utility/game.gd
08-23 15:56:30.666 19519 19535 E godot : At: main/main.cpp:1498:start() - Condition ' res.is_null() ' is true. Continuing..:
08-23 15:56:30.666 19519 19535 E godot : SCRIPT ERROR: Parse Error: Unexpected token: ',':Node
08-23 15:56:30.666 19519 19535 E godot : At: res://utility/utils.gdc:2:GDScript::load_byte_code() - Parse Error: Unexpected token: ',':Node
08-23 15:56:30.666 19519 19535 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.666 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:777:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.666 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.666 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:2127:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.666 19519 19535 E godot : ERROR: Failed loading resource: res://utility/utils.gdc
08-23 15:56:30.666 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.666 19519 19535 E godot : ERROR: Can't autoload: res://utility/utils.gd
08-23 15:56:30.666 19519 19535 E godot : At: main/main.cpp:1498:start() - Condition ' res.is_null() ' is true. Continuing..:
08-23 15:56:30.667 19519 19535 E godot : SCRIPT ERROR: Parse Error: Class 'Node' shadows a native class.
08-23 15:56:30.667 19519 19535 E godot : At: res://utility/setting.gdc:1:GDScript::load_byte_code() - Parse Error: Class 'Node' shadows a native class.
08-23 15:56:30.667 19519 19535 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.667 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:777:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.667 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.667 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:2127:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.667 19519 19535 E godot : ERROR: Failed loading resource: res://utility/setting.gdc
08-23 15:56:30.667 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.667 19519 19535 E godot : ERROR: Can't autoload: res://utility/setting.gd
08-23 15:56:30.667 19519 19535 E godot : At: main/main.cpp:1498:start() - Condition ' res.is_null() ' is true. Continuing..:
08-23 15:56:30.668 19519 19535 E godot : SCRIPT ERROR: Parse Error: Unexpected token: ',':Node
08-23 15:56:30.668 19519 19535 E godot : At: res://utility/stage_manager.gdc:2:GDScript::load_byte_code() - Parse Error: Unexpected token: ',':Node
08-23 15:56:30.668 19519 19535 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.668 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:777:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.668 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.668 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:2127:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.668 19519 19535 E godot : ERROR: Failed loading resource: res://utility/stage_manager.gdc
08-23 15:56:30.668 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.668 19519 19535 E godot : ERROR: res://utility/stage_manager.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://utility/stage_manager.gd
08-23 15:56:30.668 19519 19535 E godot : At: scene/resources/scene_format_text.cpp:439:poll() - res://utility/stage_manager.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://utility/stage_manager.gd
08-23 15:56:30.668 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.668 19519 19535 E godot : At: core/io/resource_loader.cpp:153:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.668 19519 19535 E godot : ERROR: Failed loading resource: res://utility/stage_manager.tscn
08-23 15:56:30.668 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.668 19519 19535 E godot : ERROR: Can't autoload: res://utility/stage_manager.tscn
08-23 15:56:30.668 19519 19535 E godot : At: main/main.cpp:1498:start() - Condition ' res.is_null() ' is true. Continuing..:
08-23 15:56:30.733 19519 19535 E godot : SCRIPT ERROR: Parse Error: Class 'Node' shadows a native class.
08-23 15:56:30.733 19519 19535 E godot : At: res://stages/menu_stage.gdc:1:GDScript::load_byte_code() - Parse Error: Class 'Node' shadows a native class.
08-23 15:56:30.733 19519 19535 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.733 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:777:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
08-23 15:56:30.733 19519 19535 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.733 19519 19535 E godot : At: modules/gdscript/gdscript.cpp:2127:load() - Condition ' err != OK ' is true. returned: RES()
08-23 15:56:30.733 19519 19535 E godot : ERROR: Failed loading resource: res://stages/menu_stage.gdc
08-23 15:56:30.733 19519 19535 E godot : At: core/io/resource_loader.cpp:190:_load() - Method/Function Failed, returning: RES()
08-23 15:56:30.733 19519 19535 E godot : ERROR: res://stages/menu_stage.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://stages/menu_stage.gd
08-23 15:56:30.733 19519 19535 E godot : At: scene/resources/scene_format_text.cpp:439:poll() - res://stages/menu_stage.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://stages/menu_stage.gd

FULL LOG: https://app.box.com/s/aoo8asvtrk1tztg1vuvou896uwu5ik3v

Gradlew build failing

OS target (Android/iOS):
Android

Godot version:
3.02

Issue description:

c:\Users\Tamoor\Desktop\Godot_v3.0.2-stable_win64.exe\godot\platform\android\java> gradlew build

> Configure project :
The setTestClassesDir(File) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the setTestClassesDirs(FileCollection) method instead.
The getTestClassesDir() method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the getTestClassesDirs() method instead.
The ConfigurableReport.setDestination(Object) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the method ConfigurableReport.setDestination(File) instead.

> Task :processDebugManifest
C:\Users\Tamoor\Desktop\Godot_v3.0.2-stable_win64.exe\godot\platform\android\java\AndroidManifest.xml:42:9-44:72 Warning:
        Element meta-data#com.google.android.gms.version at AndroidManifest.xml:42:9-44:72 duplicated with element declared at AndroidManifest.xml:36:2-37:59

> Task :compileDebugJavaWithJavac
C:\Users\Tamoor\Desktop\Godot_v3.0.2-stable_win64.exe\godot\modules\godot_gpgs\android\gpgs\Client.java:155: error: cannot access zzo
        Dialog dialog = GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(),
                                              ^
  class file for com.google.android.gms.common.zzo not found
C:\Users\Tamoor\Desktop\Godot_v3.0.2-stable_win64.exe\godot\modules\godot_gpgs\android\gpgs\PlayerInfo.java:120: error: cannot access zza
            return player.getLevelInfo().getCurrentLevel().getLevelNumber();
                                        ^
  class file for com.google.android.gms.common.internal.safeparcel.zza not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
82 actionable tasks: 79 executed, 3 up-to-date

Exported application doesn't work

OS target (Android/iOS):
Android 8.1.0

Godot version:
v3.0.2.stable.official

Issue description:

Hello I tried add banner into my Android application, but when I export and run
on mobile so it fall down and cannot run it..

I progressed by your manual in README:

  1. I cloned this repository and added admob directory into modules in godot source and built the apk release files.
  2. Added config for android in project.godot, restarted Godot and added this code into my app:
var admob = null
var isReal = false
var isTop = false
var adBannerId = "ca-app-pub-8376690330172162/3506453875" 

func _ready():
	if(Engine.has_singleton("AdMob")):
		admob = Engine.get_singleton("AdMob")
		admob.init(isReal, get_instance_id())
		loadBanner()

func loadBanner():
	if admob != null:
		admob.loadBanner(adBannerId, isTop)
		admob.showBanner()
  1. In export I setuped:
Options:
	Custom Package:
		- place your apk from build
	Permissions on:
		- Access Network State
		- Internet

I tried also your examples for Godot 3 but it also didn't work..

Compiling Godot for Android

Hi everyone,
I recently tried to compile godot for android because i want to implement admob on my first game !
But i'm really struggling to do so, and i just can't figure out why it is not working, it seems like a new problems appears right after i find a solution to the previous one...

I'm clearly missing something, so if anyone managed to recently compile godot for android, it would be amazing if he could tell me exactly the process he went through, and the version of the NDK, SDK, JDK, Scons etc, he's using.

I really want to launch this game i've developped for so long, and this would help me so much !
Thanks in advance !

(sorry for my english, it is not my first langage...)

AdMob: onAdFailedToLoad -> ERROR_CODE_INTERNAL_ERROR

I don't know what I'm doing wrong here.

I'm trying to get a banner ad to show display. I've signed up with AdMob and created an Ad Unit and have my ID. I'm using that ID as per the examples in the repo for Godot 3 and I'm getting this error every single time.

It seems that the admob.loadBanner(ad_banner_ID, display_top) call doesn't throw any errors, but when I call admob.showBanner() it throws the title error.

Can anyone point me in the direction of some good resources or help me out directly?

Thanks

EDIT:

Does this have something to do with my AdMob App ID? That's not being passed to the initialize function, but an Android Activity is. I'm not too sure how the inners work for this module, but shouldn't I have to pass this ID along to initialize my AdMob to display banners etc?

EDIT #2:

I'm using the sample ad ID's provided here: https://developers.google.com/admob/android/test-ads

EDIT #3:

I believe I found the source of the error by doing a adb logcat -s Ads:

Starting ad request.
03-29 17:17:05.145 28109 28109 I Ads     : This request is sent from a test device.
03-29 17:17:05.502 28109 28446 W Ads     : Google Play Service is out of date, the Google Mobile Ads SDK will not integrate with Firebase. Admob/Firebase integration requires updated Google Play Service.
03-29 17:17:15.709 28109 28465 E Ads     : Error waiting for future.

Is this something I have to update on my end?

Normal banners dont work

OS target (Android/iOS):
Android

Godot version:
Godot 3.0.5

Issue description:

Banners don't come up no matter what id I put in, I even created new one but with no luck
only google's test banner id works
Interstitials and rewarded videos are working

Gradlew fails

OS target (Android/iOS):
Android

Godot version:
3.1beta1

Issue description:

PS E:\godot\platform\android\java> .\gradlew build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/4.6/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing
> Configure project :
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads/16.0.0/play-services-ads-16.0.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-base/16.0.0/play-services-ads-base-16.0.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-identifier/16.0.0/play-services-ads-identifier-16.0.0.pom
Download https://dl.google.com/dl/android/maven2/com/android/support/customtabs/26.1.0/customtabs-26.1.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-lite/16.0.0/play-services-ads-lite-16.0.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-gass/16.0.0/play-services-gass-16.0.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.0.1/play-services-basement-16.0.1.pom
Download https://dl.google.com/dl/android/maven2/com/android/support/support-v4/26.1.0/support-v4-26.1.0.pom
Download https://dl.google.com/dl/android/maven2/com/android/support/support-media-compat/26.1.0/support-media-compat-26.1.0.pom
Download https://dl.google.com/dl/android/maven2/com/android/support/support-core-ui/26.1.0/support-core-ui-26.1.0.pom
Download https://dl.google.com/dl/android/maven2/com/android/support/support-fragment/26.1.0/support-fragment-26.1.0.pom
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-identifier/16.0.0/play-services-ads-identifier-16.0.0.aar
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads/16.0.0/play-services-ads-16.0.0.aar
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-lite/16.0.0/play-services-ads-lite-16.0.0.aar
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-gass/16.0.0/play-services-gass-16.0.0.aar
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.0.1/play-services-basement-16.0.1.aar
Download https://dl.google.com/dl/android/maven2/com/android/support/support-v4/26.1.0/support-v4-26.1.0.aar
Download https://dl.google.com/dl/android/maven2/com/android/support/customtabs/26.1.0/customtabs-26.1.0.aar
Download https://dl.google.com/dl/android/maven2/com/android/support/support-fragment/26.1.0/support-fragment-26.1.0.aar
Download https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-base/16.0.0/play-services-ads-base-16.0.0.aar
Download https://dl.google.com/dl/android/maven2/com/android/support/support-media-compat/26.1.0/support-media-compat-26.1.0.aar
Download https://dl.google.com/dl/android/maven2/com/android/support/support-core-ui/26.1.0/support-core-ui-26.1.0.aar

> Task :compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
D8: Program type already present: android.support.v4.app.LoaderManager$LoaderCallbacks


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\38.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\36.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\44.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\26.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\32.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\23.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\42.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\21.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\17.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\47.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\29.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\45.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\30.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\27.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\39.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\24.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\33.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\41.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\18.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\48.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\35.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\8.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\10.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\2.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\9.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\1.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\15.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\5.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\11.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\0.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\4.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\14.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\6.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\12.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\7.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\13.jar, E:\godot\platform\android\java\build\intermediates\transforms\dexBuilder\debug\3.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: android.support.v4.app.LoaderManager$LoaderCallbacks

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 34s
21 actionable tasks: 10 executed, 11 up-to-date

After successfully "sconing" the android module with minimal setup:
scons -j4 android_arch=armv7 platform=android target=release_debug optimize=speed tools=no use_lto=no deprecated=no gdscript=no minizip=no xaudio2=no disable_3d=yes disable_advanced_gui=yes no_editor_splash=yes builtin_bullet=no builtin_certs=no builtin_enet=no builtin_libogg=no builtin_libtheora=no builtin_libvorbis=no builtin_libvpx=no builtin_libwebp=no builtin_libwebsockets=no builtin_mbedtls=no builtin_miniupnpc=no builtin_opus=no builtin_pcre2=no builtin_recast=no builtin_squish=no builtin_thekla_atlas=no builtin_xatlas=no builtin_zlib=no debug_symbols=no separate_debug_symbols=no android_neon=no android_stl=no module_bmp_enabled=no module_bullet_enabled=no module_csg_enabled=no module_cvtt_enabled=no module_dds_enabled=no module_enet_enabled=no module_etc_enabled=no module_gdnative_enabled=no module_gdscript_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jpg_enabled=no module_mbedtls_enabled=no module_mobile_vr_enabled=no module_mono_enabled=no module_ogg_enabled=no module_opensimplex_enabled=no module_opus_enabled=no module_pvr_enabled=no module_recast_enabled=no module_regex_enabled=no module_squish_enabled=no module_stb_vorbis_enabled=no module_svg_enabled=no module_tga_enabled=no module_thekla_unwrap_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_visual_script_enabled=no module_vorbis_enabled=no module_webm_enabled=no module_webp_enabled=no module_websocket_enabled=no module_xatlas_unwrap_enabled=no

It compiles fine without admob module.

May be admob needs a godot module I don't include in the build?

Android build error message - (gradlew build)

I get this error message when I run the godot build for android_debug.apk and android_release.
The fix is to remove the @OverRide decorator... is this intended?
GodotAdMob.java:111: error: method does not override or implement a method from a supertype

'Node2D' shadows a native class

OS target (Android/iOS): Android

Godot version: V3.0.6.stable

Issue description:

Recompiled android_release.apk and android_debug.apk with the source of Godot and dropped admob folder in modules.
Export works fine but when I launch the app:

11-03 03:55:09.701 25242 25263 E godot : SCRIPT ERROR: Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:09.701 25242 25263 E godot : At: res://Menu.gdc:1:GDScript::load_byte_code() - Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:09.701 25242 25263 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:09.701 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:768:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:09.719 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:09.719 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:2120:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:09.757 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.gdc
11-03 03:55:09.769 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:09.780 25242 25263 E godot : ERROR: res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:09.780 25242 25263 E godot : At: scene/resources/scene_format_text.cpp:439:poll() - res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:09.780 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:09.780 25242 25263 E godot : At: core/io/resource_loader.cpp:155:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:09.791 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.tscn
11-03 03:55:09.791 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:09.804 25242 25263 E godot : ERROR: Failed loading scene: res://Menu.tscn
11-03 03:55:09.804 25242 25263 E godot : At: main/main.cpp:1719:start() - Condition ' !scene ' is true. returned: false
11-03 03:55:21.528 25242 25263 E godot : SCRIPT ERROR: Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:21.528 25242 25263 E godot : At: res://Menu.gdc:1:GDScript::load_byte_code() - Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:21.528 25242 25263 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:21.528 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:768:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:21.537 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:21.537 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:2120:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:21.599 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.gdc
11-03 03:55:21.605 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:21.673 25242 25263 E godot : ERROR: res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:21.674 25242 25263 E godot : At: scene/resources/scene_format_text.cpp:439:poll() - res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:21.674 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:21.674 25242 25263 E godot : At: core/io/resource_loader.cpp:155:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:21.698 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.tscn
11-03 03:55:21.698 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:21.740 25242 25263 E godot : ERROR: Failed loading scene: res://Menu.tscn
11-03 03:55:21.740 25242 25263 E godot : At: main/main.cpp:1719:start() - Condition ' !scene ' is true. returned: false
11-03 03:55:33.198 25242 25263 E godot : SCRIPT ERROR: Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:33.198 25242 25263 E godot : At: res://Menu.gdc:1:GDScript::load_byte_code() - Parse Error: Class 'Node2D' shadows a native class.
11-03 03:55:33.198 25242 25263 E godot : ERROR: Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:33.198 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:768:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
11-03 03:55:33.217 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:33.217 25242 25263 E godot : At: modules/gdscript/gdscript.cpp:2120:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:33.256 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.gdc
11-03 03:55:33.300 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:33.334 25242 25263 E godot : ERROR: res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:33.334 25242 25263 E godot : At: scene/resources/scene_format_text.cpp:439:poll() - res://Menu.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Menu.gd
11-03 03:55:33.334 25242 25263 E godot : ERROR: Condition ' err != OK ' is true. returned: RES()
11-03 03:55:33.334 25242 25263 E godot : At: core/io/resource_loader.cpp:155:load() - Condition ' err != OK ' is true. returned: RES()
11-03 03:55:33.472 25242 25263 E godot : ERROR: Failed loading resource: res://Menu.tscn
11-03 03:55:33.472 25242 25263 E godot : At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
11-03 03:55:33.478 25242 25263 E godot : ERROR: Failed loading scene: res://Menu.tscn
11-03 03:55:33.478 25242 25263 E godot : At: main/main.cpp:1719:start() - Condition ' !scene ' is true. returned: false

Release export not work

[Sorry for my english]

Hello.

I am using Godot 3 and debug export works fine, but release export not work in runtime.

I do not know whats's wrong ...

How can I debug a release version of my apk?

Xcode build failing: ld: framework not found GoogleMobileAds

OS target (Android/iOS): iOS

Godot version: 3.0.6

Issue description:
I followed the steps on the readme page for iOS but got this error when building the project.

ld: framework not found GoogleMobileAds

Not sure why it can't find that framework. I added GoogleMobileAds.framework to the xcode project under the Frameworks directory, and checked that it's linked with the Libraries under Build Phases.

It seems similar to issue #43, but I've linked both libsqlite3*.tbd binaries with Libraries. Unfortunately that hasn't resolved the issue for me.

Edit: Not sure if this extra info is helpful, but I built the Godot Engine source with:

scons p=iphone tools=no bits=64 target=release_debug arch=arm64

And copied bin/libgodot.iphone.opt.debug.arm64.a from the Godot Engine source to the xcode project, overwriting the *.a file that was there.

iOS - GodotAdmob Module already initialized

OS target (Android/iOS):
Error on iOS, Android is fine

Godot version:
3.0.6-stable

Issue description:
I am making sure that GodotAdmob is initialized once, but the error persists.

objc[39918]: Class VCWeakObjectHolder is implemented in both /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/Frameworks/ViceroyTrace.framework/ViceroyTrace (0x126b8e4d0) and /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/AVConference (0x126a0ee38). One of the two will be used. Which one is undefined.
*********** main.m
running app main
after init super 0x7fe312517bd0
******** screen size 750, 1334
after init gles 0x7fe312517bd0
******** adding observer for sound routing changes
******** adding observer for keyboard show/hide
glview is 0x7fe312517bd0
Path: /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/1AFFE83D-349A-4FD4-AC16-CF1718996A39/MyApp.app
godot_iphone /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/1AFFE83D-349A-4FD4-AC16-CF1718996A39/MyApp.app/MyApp
cwd /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Bundle/Application/1AFFE83D-349A-4FD4-AC16-CF1718996A39/MyApp.app
os created
setting data dir to /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Data/Application/DA477A22-446C-4789-AD2E-B5F5EF21A5B2/Documents from /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Data/Application/DA477A22-446C-4789-AD2E-B5F5EF21A5B2/Documents
setup 0
cadisaplylink: 1start animation!
******** screen size 750, 1334
2018-12-30 11:40:48.822157-0800 MyApp[39918:6998068] [App] UIWindow->__registeredPreCommitHandler was abandoned !!!! this would have caused a cascade of blown fences - proactively clearing but a bug exists here somewhere between UIKit and CoreAnimation
2018-12-30 11:40:48.822345-0800 MyApp[39918:6998068] +[CATransaction synchronize] called within transaction
2018-12-30 11:40:48.823375-0800 MyApp[39918:6998068] +[CATransaction synchronize] called within transaction
2018-12-30 11:40:48.829007-0800 MyApp[39918:6998068] +[CATransaction synchronize] called within transaction
2018-12-30 11:40:48.933102-0800 MyApp[39918:6998219] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/administrator/Library/Developer/CoreSimulator/Devices/C9D9B41C-B272-43A6-AA8A-44A697A4EC5B/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-12-30 11:40:48.933675-0800 MyApp[39918:6998219] [MC] Reading from private effective user settings.
2018-12-30 11:40:48.952626-0800 MyApp[39918:6998068] OpenGL ES 3.0 Renderer: Apple Software Renderer
2018-12-30 11:40:49.062402-0800 MyApp[39918:6998286] [AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData:  AudioObjectGetPropertyData: no object with given ID 0
2018-12-30 11:40:49.531220-0800 MyApp[39918:6998068] Boot splash path: res://bootsplash.png
2018-12-30 11:40:50.716540-0800 MyApp[39918:6998068] **ERROR**: Condition ' instance != __null ' is true.
2018-12-30 11:40:50.716719-0800 MyApp[39918:6998068]    At: modules/admob/ios/src/godotAdmob.mm:12:GodotAdmob() - Condition ' instance != __null ' is true.
2018-12-30 11:40:51.065779-0800 MyApp[39918:6998222] Could not successfully update network info during initialization.
2018-12-30 11:40:51.229530-0800 MyApp[39918:6998068] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.229694-0800 MyApp[39918:6998068]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.230141-0800 MyApp[39918:6998068] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.230367-0800 MyApp[39918:6998068]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.230705-0800 MyApp[39918:6998068] **ERROR**: Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.230901-0800 MyApp[39918:6998068]    At: drivers/gles3/rasterizer_storage_gles3.cpp:6383:_render_target_allocate() - Condition ' status != 0x8CD5 ' is true.
2018-12-30 11:40:51.586611-0800 MyApp[39918:6998068] GodotAdmob Module already initialized
(lldb) 

Test ads load, real ones don't

Hey guys,

I'm trying to use an interstitial ad on my game and when I use a test ID it works just fine. I'm using this one to test:

ca-app-pub-3940256099942544/1033173712

From this page: https://developers.google.com/admob/android/test-ads

But when I try to use my own id it doesn't work. I get this error looking at logcat:

"There was a problem getting an ad response. ErrorCode: 0 Failed to load ad:0"

I've seen on StackOverflow that sometimes it means the ad is not ready yet to be published but I've generated this ad three days ago. Any ideas of what it might be?

BTW, I've tested the real ID with the isReal param set to true and nothing... Anything would help. Thanks!

Issues with screen orientation

OS target (Android/iOS): Android

Godot version: 2.1.4 / 2.1.5

Issue description: Is there a way to rotate the way ads are displayed? My app was build for landscape, which Godot defaults to, however it's actually meant to be played as portrait, which means that banners are displayed at the right corner, which is the screen's landscape "top", interstitials are further cropped, pixelated and off screen boundaries. This is also how the provided sample projects are set up.

Is there a way to fake the screen orientation, as in having an API function that does so? Or having an API function that fakes where the top or bottom of the screen is?

AdMob not showing ads in alpha for other phones

OS target (Android/iOS):
Android

Godot version:
2.1.4 custom build

Issue description:
I tried the code on my device and installed it through ADB and everything was working okay with the Ads but, as soon as I uploaded it to the AppStore Alpha, I tested on some friend's devices and the Ads were not working.
Checking the logs I got the following error:

12-07 09:36:19.281  21102    21102                    Ads  I  Updating ad debug logging enablement.
12-07 09:36:19.291   3824     4812        ActivityManager  W  Unable to start service Intent { act=com.google.android.gms.ads.identifier.service.START pkg=com.google.android.gms } U=0: not found
12-07 09:36:19.291  21102    21159                    Ads  E  Fail to get isAdIdFakeForDebugLogging
12-07 09:36:19.291  21102    21159                    Ads  E  java.io.IOException: Connection failure
12-07 09:36:19.291  21102    21159                    Ads  E  at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_adsdynamite@[email protected] (040400-223214910):106)
12-07 09:36:19.291  21102    21159                    Ads  E  at com.google.android.gms.ads.identifier.a.a(:com.google.android.gms.dynamite_adsdynamite@[email protected] (040400-223214910):16)
12-07 09:36:19.291  21102    21159                    Ads  E  at com.google.android.gms.ads.identifier.a.b(:com.google.android.gms.dynamite_adsdynamite@[email protected] (040400-223214910):131)
12-07 09:36:19.291  21102    21159                    Ads  E  at com.google.android.gms.ads.internal.util.d.c_(:com.google.android.gms.dynamite_adsdynamite@[email protected] (040400-223214910):3)
12-07 09:36:19.291  21102    21159                    Ads  E  at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.dynamite_adsdynamite@[email protected] (040400-223214910):4)
12-07 09:36:19.291  21102    21159                    Ads  E  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
12-07 09:36:19.291  21102    21159                    Ads  E  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-07 09:36:19.291  21102    21159                    Ads  E  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-07 09:36:19.291  21102    21159                    Ads  E  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-07 09:36:19.291  21102    21159                    Ads  E  at java.lang.Thread.run(Thread.java:818)
12-07 09:36:19.291  21102    21159                    Ads  W  Update ad debug logging enablement as false
12-07 09:36:19.331  21102    21102                    Ads  I  Starting ad request.
12-07 09:36:19.331  21102    21102                    Ads  I  SDK version: afma-sdk-a-v14799019.10084000.1

Any idea of what can cause this? What am I missing?

Banner ad won't show (onAdFailedToLoad -> ERROR_CODE_INTERNAL_ERROR)

OS target (Android/iOS):
Android

Godot version:
Godot v3.0

Issue description:
I created the AdMob account page for an App I still haven't created a page on PlayStore, and set up the module according to the instructions - but I can't seem to use the banner_id from AdMob. I always receive the error onAdFailedToLoad -> ERROR_CODE_INTERNAL_ERROR when trying the method show_banner(); but when I changed the banner_id to the ID of one of my apps already published on PlayStore, the method works just fine.

My intention was to test the banner before publishing the app, but do I have to publish it on playstore and link it to my AdMob account for the module to work?

left click doesnt work as touch input

OS target (Android/iOS): Android

Godot version: 3.0.2

Issue description:
i compiled export templates so that i could use admob ads in my project, but when i exported my game using those export templates the touch didnt work (it works fine on scenes where i dont use if Input.is_action_just_pressed("ui_left_click"): ......
if i run the project in editor everything works fine too, and if i export without those export templates it also works fine, so the problem must be export templates

Game at start is closed immediately

I compiled it to 2.1.3, also tried with the templates that are here in git, and it happens the same, critical in opening the app and exits. Is it because it is not compatible with 2.1.3? And if that's how do I do it? What can be happening?

I checked with adb, and the only strange thing I found was this:

[e3720200] Application Error: org.godot:0: signaled
  kgsl-3d0_surfaceflinger(343)-surfaceflinger(343)-1_pt [email protected]: 98615 / 98680 retired:98680

if Globals.has_singleton("bbAdmob") returns false

im using the 2.1.4 godot for linux 64, i did all the steps but its fails... i have compiled the godot and also the export templates, had configured all as was described here, just returns false.
what should i do ? i could follow all the steps, recompiled godot, also the export templates but nothing happens now. ot just retorns false for Globals.has_singleton("bbAdmob").
.
var admob = null;
var admob_banner_id = "ca-app-pub-4271047361119801/6475071680" # your banner id here

func _ready():
if Globals.has_singleton("bbAdmob"): <- returns false !
admob = Globals.get_singleton("bbAdmob")
admob.init(true, get_instance_ID())
admob.loadBanner(admob_banner_id, true)
print("largura = "+str(getBannerWidith()))
print("altura = "+str(getBannerHeight()))

else : dbg.set_text("nao funcionou")

can't compile the templates

scons platform=android target=release
scons: Reading SConscript files ...
Godot Android!!!!! (armv7) (with neon)
scons: done reading SConscript files.
scons: Building targets ...
[ 4%] Compiling shared ==> platform/android/os_android.cpp
sh: 1: /home/marcus/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++: not found
scons: *** [platform/android/os_android.os] Error 127
scons: building terminated because of errors.

i follow the steps, thats what i got

iOS Admob Problem

OS target (Android/iOS):
iOS

Godot version:
3.06

Issue description:
I'm using Godot 3.0.6 and using iPad 6th Generation

For iOS I have some questions.

First, I recompiled the iOS export template with admob module and I have lost of exports. Lol. :D And I don't understand, which one I'll use and how?

I have now:

  • godot.iphone.opt.universal
  • libgodot.android.opt.armv7.neon.so
  • libgodot.iphone.debug.arm64.a
  • libgodot.iphone.debug.x86.a
  • libgodot.iphone.opt.arm.a
  • libgodot.iphone.opt.arm64.a

I exported my project from Godot, now I have a XCode Project and it is working on real device but Ads are not showing.

In the readme file, there is a information;

-Copy the library (.a) you have compiled following the official documentation inside the exported Xcode project. You must override the 'your_project_name.a' file with this file.

Which file should I use? When I try replace my FlappyHorse.a with libgodot.iphone.op.arm64.a or godot.iphone.opt.universal (replaced name with FlappyHorse.a) I am getting error that you can find below.

I downloaded GoogleMobileAds.framework from there: https://developers.google.com/admob/ios/download

Ld /Users/***/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Products/Debug-iphoneos/FlappyHorse.app/FlappyHorse normal arm64 (in target: FlappyHorse)

cd /Users/*****/Documents/Projects/Flappy\ Horse/ios_export

export IPHONEOS_DEPLOYMENT_TARGET=9.0

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -L/Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Products/Debug-iphoneos -F/Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Products/Debug-iphoneos -FFlappyHorse -F/Users/tepee/Documents/Projects/Flappy\ Horse/ios_export -filelist /Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Intermediates.noindex/FlappyHorse.build/Debug-iphoneos/FlappyHorse.build/Objects-normal/arm64/FlappyHorse.LinkFileList -miphoneos-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Intermediates.noindex/FlappyHorse.build/Debug-iphoneos/FlappyHorse.build/Objects-normal/arm64/FlappyHorse_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -stdlib=libc++ -framework MobileCoreServices -framework CFNetwork -framework CoreTelephony -framework MessageUI -framework AdSupport -framework CoreVideo -framework GoogleMobileAds -framework CoreGraphics -framework SystemConfiguration -framework Security -framework QuartzCore -framework MediaPlayer -framework GameController -framework CoreMotion -framework CoreMedia -framework CoreAudio -framework AudioToolbox -framework OpenGLES -framework StoreKit -framework AVFoundation -framework UIKit -framework GameKit -framework GLKit -framework Foundation /Users/tepee/Documents/Projects/Flappy\ Horse/ios_export/FlappyHorse.a -Xlinker -dependency_info -Xlinker /Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Intermediates.noindex/FlappyHorse.build/Debug-iphoneos/FlappyHorse.build/Objects-normal/arm64/FlappyHorse_dependency_info.dat -o /Users/tepee/Library/Developer/Xcode/DerivedData/FlappyHorse-chjapgceylflyjcxvuoowpmjhvxf/Build/Products/Debug-iphoneos/FlappyHorse.app/FlappyHorse

Undefined symbols for architecture arm64:

"_sqlite3_open", referenced from:

l150 in GoogleMobileAds(GADNSettings.o)

l087 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_exec", referenced from:

l150 in GoogleMobileAds(GADNSettings.o)

l087 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_errmsg", referenced from:

l203 in GoogleMobileAds(GADNSettings.o)

l107 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_prepare_v2", referenced from:

l149 in GoogleMobileAds(GADNSettings.o)

l203 in GoogleMobileAds(GADNSettings.o)

l086 in GoogleMobileAds(GADNSQLStorage.o)

l107 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_step", referenced from:

l149 in GoogleMobileAds(GADNSettings.o)

l203 in GoogleMobileAds(GADNSettings.o)

l086 in GoogleMobileAds(GADNSQLStorage.o)

l107 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_bind_text", referenced from:

l203 in GoogleMobileAds(GADNSettings.o)

l107 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_column_text", referenced from:

l149 in GoogleMobileAds(GADNSettings.o)

l086 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_finalize", referenced from:

l149 in GoogleMobileAds(GADNSettings.o)

l203 in GoogleMobileAds(GADNSettings.o)

l086 in GoogleMobileAds(GADNSQLStorage.o)

l107 in GoogleMobileAds(GADNSQLStorage.o)

"_sqlite3_close", referenced from:

l148 in GoogleMobileAds(GADNSettings.o)

l150 in GoogleMobileAds(GADNSettings.o)

l085 in GoogleMobileAds(GADNSQLStorage.o)

l087 in GoogleMobileAds(GADNSQLStorage.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

Rewarded Video don't open

Hi, I'm new in godot developement.
First, thanks for the library. Is very helpful.

I'm using godot in Linux.

I tried to implement it in my game using the godot 2.1.4 but when I run on Android, it just blink the godot screen and crashs.
So I downloaded godot 2.1 and adapt my game to export in the export template 2.1 and finally got it to work.
Now my problem is, the banner and interstitial are working well, but the rewarded video don't open.
Even with the demo, that comes with the library the video don't open.

I am debuging it with adb logcat and get this response:

SCRIPT ERROR: _on_BtnRewardedVideo_pressed: Invalid call. Nonexistent function 'showRewardedVideo' in base 'JNISingleton'.

What am I doing wrong?

The Example for godot 3 won't work

OS target (Android/iOS):
Android

Godot version:
3.0.6 stable

Issue description:

I compiled godot source code with admob module and i set the exported apks .
i tried to run the example app and it won't work .

adb logcat

adb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.