Code Monkey home page Code Monkey logo

extension-admob's Introduction

extension-admob's People

Contributors

agulev avatar alexeyfeskov avatar britzl avatar jcash avatar mathiaswking 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

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

extension-admob's Issues

Android: banner truncates in landscape orientation

Describe the bug (REQUIRED)
Top-positioned banners are truncating in landscape mode on displays with rounded corners (Android 9+ devices : Xiaomi Mi 9 SE and some others)
imageimage

To Reproduce (REQUIRED)
Steps to reproduce the behavior:

  1. Download lasted release and open with Defold Editor (1.2.185 in my case)
  2. Turn on Dynamic Orientation in game.project
  3. Bundle and install APK on affected device
  4. Load banner and show at admod.POS_TOP_CENTER
  5. Observe: in landscape orientation, the banner is truncated

Expected behavior (REQUIRED)
Banner is fully visible

Platforms (REQUIRED):

  • Android 9+, any device with a rounded-corner display

Additional context (OPTIONAL):
I've fix same issue for Applovin Max and will try to port this fix for AdMob

[iOS] Banner inconsistent behaviour when switching layouts

Steps to reproduce :

  • iOS build
  • Setup Portrait and Landscape layouts
  • load and show banner ad on a position other than 1
  • switch back and forth from Landscape to Portrait

The banner appear to be changing positions when switching layouts. Sometimes it looks like it is consistently occupying two different positions in Portrait and Landscape. Sometimes it might be in a certain position upon showing and when switching layout back and forth is shown at a different position on the same layout. Note that those positions might actually be out of the screen, making it look like they disappeared.

The bug doesn't occur at all on Android.

too few arguments to function call, expected 5, have 3 dmScript::JsonToLua(L, json, strlen(json));

This noon I built my app with no issue and tonight i cannot build my app regarding to this error

Screen Shot 2022-11-03 at 01 55 47

I was using master branch when this error occurred, then I came and saw new release available here with exact error title (however my happiness didn't last long) cause same error happened with this new release.

Here is the code that I'm trying to compile.

-- ads
local function update_ui(self)
	if self.ad_type == admob.MSG_INTERSTITIAL then
		admob.is_interstitial_loaded()
	elseif self.ad_type == admob.MSG_REWARDED then
		admob.is_rewarded_loaded()
	elseif self.ad_type == admob.MSG_BANNER then
		admob.is_banner_loaded()
	end
end

local function admob_callback(self, message_id, message)
	if message_id == admob.MSG_INITIALIZATION then
		self.initialized = true
	end
	if self.ad_type == admob.MSG_INTERSTITIAL then
		print("admob.load_interstitial()")
		admob.load_interstitial(self.interstitial_ad_unit)
		admob.show_interstitial()
	elseif self.ad_type == admob.MSG_REWARDED then
		print("admob.load_rewarded()")
		admob.load_rewarded(self.rewardedvideo_ad_unit)
		admob.show_rewarded()
		reload_banner()
	elseif self.ad_type == admob.MSG_BANNER then
		print("admob.load_banner()")
		admob.load_banner(self.banner_ad_unit)
		print("admob.show_banner("..admob.POS_BOTTOM_CENTER..")")
		admob.show_banner(admob.POS_BOTTOM_CENTER)
	end
	update_ui(self)
end

local function reload_banner()
	self.ad_type = admob.MSG_BANNER
	admob.set_callback(admob_callback)
end

local function get2xlife()
	ad_type = admob.MSG_REWARDED
	admob.set_callback(admob_callback)
end
-- ads

function init(self)
	msg.post(".", "acquire_input_focus")
	msg.post("@render:", "use_fixed_fit_projection")

	-- ads
	local engine_info = sys.get_engine_info()
	self.is_debug = engine_info.is_debug

	if self.is_debug then
		if sys.get_sys_info().system_name == 'iPhone OS' then
			self.banner_ad_unit = "ca-app-pub-3940256099942544/2934735716"
			self.interstitial_ad_unit = "ca-app-pub-3940256099942544/4411468910"
			self.rewardedvideo_ad_unit = "ca-app-pub-3940256099942544/1712485313"
		else --Android
			self.banner_ad_unit = "ca-app-pub-3940256099942544/6300978111"
			self.interstitial_ad_unit = "ca-app-pub-3940256099942544/1033173712"
			self.rewardedvideo_ad_unit = "ca-app-pub-3940256099942544/5224354917"
		end
	else
		if sys.get_sys_info().system_name == 'iPhone OS' then
			self.banner_ad_unit = "my_real_id"
			self.interstitial_ad_unit = "my_real_id"
			self.rewardedvideo_ad_unit = "my_real_id"
		else --Android
			self.banner_ad_unit = "my_real_id"
			self.interstitial_ad_unit = "my_real_id"
			self.rewardedvideo_ad_unit = "my_real_id"
		end
	end

	if admob then
		admob.set_callback(admob_callback)
		admob.set_privacy_settings(true)
		self.ad_type = admob.MSG_BANNER
		admob.initialize()
	end
	-- ads
end


function on_input(self, action_id, action)
	if (action_id == hash("touch") and action.released  == true) then
        local select1 = gui.get_node("playbyreward")
        if gui.pick_node(select1, action.x, action.y) then
            get2xlife()
        end
    end
end

Any suggestion?

Add extension name and version as an ad request agent string for usage statistics

Hello Defold team - this is Taeho from Google Game Engine Partnerships team.

Defold AdMob extension is a great way for Defold developers to monetize their games with AdMob. We'd like to better understand how developers are using the extension by tracking the number of ad requests that are coming from the extension.

To do this, we would like to request that you add the extension name and version info as an ad request agent. It will help us to identify ad requests that are coming from the Defold AdMob extension, and it will also help us to track the effectiveness of the extension.

You can use the following API to set the request agent.

Could you use defold-x.y.z as a request agent string pattern? For example, if the plugin version is 1.0.1, its request agent string should be defold-1.0.1.

Please don't hesitate to let me know if you have any questions. Thanks!

[iOS] Banner resets on position 1 when hidden

Only on iOS, the banner ad appear to be behave in a different manner.

Steps to reproduce :

  • iOS bundle
  • Load a banner
  • Show banner, any position but 1
  • Destroy banner
  • Load banner again
  • Show banner again
  • The banner should now be on position 1

Ads not displaying.

Hello. I am a newbie to defold and trying to set up ads in the app. Here is the code that I am using to load in a banner:
admob.load_banner('ca-app-pub-5899340000115/52770000', { width = 320, height = 50 }, callback )
I added in the callback this line of code:
admob.show_banner()
I also added all the requires things in the configs and everything. What am I missing?

Potential issue with adaptive banner

On user' device adaptive banner with BOTTOM_CENTER position shows as a big banner that occupies whole screen (see screenshot).
admob.show_banner(admob.POS_BOTTOM_CENTER)

Device:
Motorola one power (Screen size 1080x2246) Android version: Android 9 (SDK 28)

Screenshot_20210516-202304

iOS builds are not working after the iOS SDK upgrade

Builds are crashing on the build server when extension-admob is included:

0  0x10bfc21cc  __assert_rtn + 123
1  0x10bfc7bec  ld::tool::OutputFile::writeAtoms(ld::Internal&, unsigned char*) (.cold.1) + 0
2  0x10bf0d739  ld::tool::OutputFile::compressedOrdinalForAtom(ld::Atom const*) const + 335
3  0x10bf118f6  ld::tool::OutputFile::addDyldInfo(ld::Internal&, ld::Internal::FinalSection*, ld::Atom const*, ld::Fixup*, ld::Fixup*, ld::Fixup*, ld::Atom const*, ld::Atom const*, unsigned long long, unsigned long long) + 1476
4  0x10bf02753  ld::tool::OutputFile::generateLinkEditInfo(ld::Internal&) + 1219
5  0x10befbe20  ld::tool::OutputFile::write(ld::Internal&) + 116
6  0x10be7a6e3  main + 774
A linker snapshot was created at:
	/tmp/dmengine-2021-09-08-063251.ld-snapshot
ld: Assertion failed: (0 && "dylib not assigned ordinal"), function compressedOrdinalForAtom, file /Library/Caches/com.apple.xbs/Sources/ld64/ld64-650.9/src/ld/OutputFile.cpp, line 4948.
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Reward Video Android Problem

I have an exception when a video finished

10-07 21:12:50.164 19219-19219/? D/DynamitePackage: Instantiating com.google.android.gms.ads.reward.ChimeraRewardedVideoAdCreatorImpl
10-07 21:12:59.580 19219-19219/? W/Ads: Invoke Firebase method getCurrentScreenClass error.
java.lang.NoSuchMethodException: getCurrentScreenClass []
at java.lang.Class.getMethod(Class.java:1981)
at java.lang.Class.getDeclaredMethod(Class.java:1960)
at com.google.android.gms.ads.internal.scionintegration.b.f(:com.google.android.gms.DynamiteModulesA@11517440:125)
at com.google.android.gms.ads.internal.scionintegration.b.f(:com.google.android.gms.DynamiteModulesA@11517440:32)
at com.google.android.gms.ads.internal.al.M(:com.google.android.gms.DynamiteModulesA@11517440:103)
at com.google.android.gms.ads.internal.client.bp.a(:com.google.android.gms.DynamiteModulesA@11517440:10)
at com.google.ads.mediation.AbstractAdViewAdapter.showVideo(:com.google.android.gms.DynamiteModulesA@11517440:228)
at com.google.android.gms.ads.internal.mediation.client.u.f(:com.google.android.gms.DynamiteModulesA@11517440:193)
at com.google.android.gms.ads.internal.reward.b.a(:com.google.android.gms.DynamiteModulesA@11517440:29)
at com.google.android.gms.ads.internal.reward.client.e.onTransact(:com.google.android.gms.DynamiteModulesA@11517440:11)
at android.os.Binder.transact(Binder.java:507)
at com.google.android.gms.internal.zznr$zza$zza.show(Unknown Source)
at com.google.android.gms.internal.zznz.show(Unknown Source)
at com.google.firebase.admob.internal.cpp.RewardedVideoHelper$3.run(RewardedVideoHelper.java:190)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
10-07 21:12:59.582 19219-19219/? W/Ads: Invoke Firebase method getCurrentScreenName error.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
at com.google.android.gms.ads.internal.scionintegration.b.f(:com.google.android.gms.DynamiteModulesA@11517440:33)
at com.google.android.gms.ads.internal.al.M(:com.google.android.gms.DynamiteModulesA@11517440:103)
at com.google.android.gms.ads.internal.client.bp.a(:com.google.android.gms.DynamiteModulesA@11517440:10)
at com.google.ads.mediation.AbstractAdViewAdapter.showVideo(:com.google.android.gms.DynamiteModulesA@11517440:228)
at com.google.android.gms.ads.internal.mediation.client.u.f(:com.google.android.gms.DynamiteModulesA@11517440:193)
at com.google.android.gms.ads.internal.reward.b.a(:com.google.android.gms.DynamiteModulesA@11517440:29)
at com.google.android.gms.ads.internal.reward.client.e.onTransact(:com.google.android.gms.DynamiteModulesA@11517440:11)
at android.os.Binder.transact(Binder.java:507)
at com.google.android.gms.internal.zznr$zza$zza.show(Unknown Source)
at com.google.android.gms.internal.zznz.show(Unknown Source)
at com.google.firebase.admob.internal.cpp.RewardedVideoHelper$3.run(RewardedVideoHelper.java:190)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
10-07 21:13:13.188 19425-19425/? A/DEBUG: #3 pc 000b2f18 /data/app/com.defold.bipex.laser-1/lib/arm/liblaser_game.so (_ZN14AdMobExtension18QueueRewardCommandEiifPKc+64)
10-07 21:13:13.188 19425-19425/? A/DEBUG: #4 pc 000b5cfc /data/app/com.defold.bipex.laser-1/lib/arm/liblaser_game.so (_ZN14AdMobExtension21RewardedVideoListener10OnRewardedEN8firebase5admob14rewarded_video10RewardItemE+64)
10-07 21:13:13.188 19425-19425/? A/DEBUG: #5 pc 000c10d9 /data/app/com.defold.bipex.laser-1/lib/arm/liblaser_game.so (_ZN8firebase5admob14rewarded_video8internal21RewardedVideoInternal22NotifyListenerOfRewardENS1_10RewardItemE+136)
10-07 21:13:13.188 19425-19425/? A/DEBUG: #6 pc 000be033 /data/app/com.defold.bipex.laser-1/lib/arm/liblaser_game.so (Java_com_google_firebase_admob_internal_cpp_RewardedVideoHelper_grantReward+326)
10-07 21:13:47.128 19467-19467/? D/DynamitePackage: Instantiating com.google.android.gms.ads.reward.ChimeraRewardedVideoAdCreatorImpl

Thinks

banners not showing up

Logic

  1. I have created separate script for my ads and added it to my game collection
  2. I sent post message to my ads script from my collection init()
  3. I process the banner ad and post message to my collection script that banner has been loaded

so far all logic above are working and I can see messages in my android studio logcat but the issue is banner is not showing up in my screen.

Here is my code:

easy.gui_script

function init(self)
	msg.post(".", "acquire_input_focus")
	msg.post("@render:", "use_fixed_fit_projection")
	
	-- Loading banner ads on screen initialization
	msg.post("go#ads", "initialization_box")
	msg.post("go#ads", "show_initialize")
	msg.post("go#ads", "show_banner")
end

function on_message(self, message_id, message, sender)
	if message_id == hash("reward_finished") then
		print("reward finished")
		gui.set_visible(gui.get_node("getreward"),false)
		gui.set_visible(gui.get_node("playbyreward"),false)
		gui.set_visible(gui.get_node("backtomenu"),false)
		gui.set_visible(gui.get_node("playagain"),false)
	end
	if message_id == hash("banner_finished") then
		print("banner finished")
	end
	if message_id == hash("interstitial_finished") then
		print("interstitial finished")
	end
end

ads.script

local MAX_LOG_LINES = 10

--log logic
local gprint = print
local log = {}
local text = ""
_G.print = function(...)
	gprint(...)
	local args = {...}
	local num = #log+1
	log[num] = "--"
	for k, v in pairs(args) do
		log[num] = log[num] .. tostring(v) .. " "
	end
	log[num] = log[num] .. "\n"
	text = ""
	if num > MAX_LOG_LINES then
		table.remove(log, 1)
	end
	for k, v in pairs(log) do
		text = text .. v
	end
end

function update()
	-- gui.set_text(gui.get_node("console"), text)
end
-- end log logic

local function update_ui(self)
	-- self.initialized = true
	-- gui.set_enabled(gui.get_node("inited"), self.initialized)
	-- gui.set_enabled(gui.get_node("initialization_box"), not self.initialized)
	if self.ad_type then
		if self.ad_type == admob.MSG_INTERSTITIAL then
			admob.is_interstitial_loaded()
		elseif self.ad_type == admob.MSG_REWARDED then
			admob.is_rewarded_loaded()
		elseif self.ad_type == admob.MSG_BANNER then
			admob.is_banner_loaded()
		end
	end
end

-- local function set_block_height(height)
-- 	-- use banner height in gui
-- 	local screen_width, screen_height = window.get_size()
-- 	local settings_height = tonumber(sys.get_config("display.height"))
-- 	local mult = screen_height/settings_height
-- 	local height_b_node = gui.get_node("height_b")
-- 	local size = gui.get_size(height_b_node)
-- 	size.y = height/mult
-- 	gui.set_size(height_b_node, size)
-- end

local function admob_callback(self, message_id, message)
	if message_id == admob.MSG_INITIALIZATION then
		self.initialized = true
		if message.event == admob.EVENT_COMPLETE then
			print("EVENT_COMPLETE: Initialization complete")
		elseif message.event == admob.EVENT_JSON_ERROR then
			print("EVENT_JSON_ERROR: Internal NE json error "..message.error)
		end
	elseif message_id == admob.MSG_IDFA then
		if message.event == admob.EVENT_STATUS_AUTHORIZED then
			print("EVENT_STATUS_AUTHORIZED: ATTrackingManagerAuthorizationStatusAuthorized")
		elseif message.event == admob.EVENT_STATUS_DENIED then
			print("EVENT_STATUS_DENIED: ATTrackingManagerAuthorizationStatusDenied")
		elseif message.event == admob.EVENT_STATUS_NOT_DETERMINED then
			print("EVENT_STATUS_NOT_DETERMINED: ATTrackingManagerAuthorizationStatusNotDetermined")
		elseif message.event == admob.EVENT_STATUS_RESTRICTED then
			print("EVENT_STATUS_RESTRICTED: ATTrackingManagerAuthorizationStatusRestricted")
		elseif message.event == admob.EVENT_NOT_SUPPORTED then
			print("EVENT_NOT_SUPPORTED: IDFA request not supported on this platform or OS version")
		end
	elseif message_id == admob.MSG_INTERSTITIAL then
		if message.event == admob.EVENT_CLOSED then
			print("EVENT_CLOSED: Interstitial AD closed")
		elseif message.event == admob.EVENT_FAILED_TO_SHOW then
			print("EVENT_FAILED_TO_SHOW: Interstitial AD failed to show\nCode: "..message.code.."\nError: "..message.error)
		elseif message.event == admob.EVENT_OPENING then
			-- on android this event fire only when ADS activity closed =(
			print("EVENT_OPENING: Interstitial AD is opening")
		elseif message.event == admob.EVENT_FAILED_TO_LOAD then
			print("EVENT_FAILED_TO_LOAD: Interstitial AD failed to load\nCode: "..message.code.."\nError: "..message.error)
		elseif message.event == admob.EVENT_LOADED then
			print("EVENT_LOADED: Interstitial AD loaded")
		elseif message.event == admob.EVENT_NOT_LOADED then
			print("EVENT_NOT_LOADED: can't call show_interstitial() before EVENT_LOADED\nError: "..message.error)
		elseif message.event == admob.EVENT_IMPRESSION_RECORDED then
			print("EVENT_IMPRESSION_RECORDED: Interstitial did record impression")
		elseif message.event == admob.EVENT_CLICKED then
			print("EVENT_CLICKED: Interstitial clicked")
		elseif message.event == admob.EVENT_JSON_ERROR then
			print("EVENT_JSON_ERROR: Internal NE json error: "..message.error)
		end
	elseif message_id == admob.MSG_REWARDED then
		if message.event == admob.EVENT_CLOSED then
			print("EVENT_CLOSED: Rewarded AD closed")
		elseif message.event == admob.EVENT_FAILED_TO_SHOW then
			print("EVENT_FAILED_TO_SHOW: Rewarded AD failed to show\nCode: "..message.code.."\nError: "..message.error)
		elseif message.event == admob.EVENT_OPENING then
			-- on android this event fire only when ADS activity closed =(
			print("EVENT_OPENING: Rewarded AD is opening")
		elseif message.event == admob.EVENT_FAILED_TO_LOAD then
			print("EVENT_FAILED_TO_LOAD: Rewarded AD failed to load\nCode: "..message.code.."\nError: "..message.error)
		elseif message.event == admob.EVENT_LOADED then
			print("EVENT_LOADED: Rewarded AD loaded")
		elseif message.event == admob.EVENT_NOT_LOADED then
			print("EVENT_NOT_LOADED: can't call show_rewarded() before EVENT_LOADED\nError: "..message.error)
		elseif message.event == admob.EVENT_EARNED_REWARD then
			print("EVENT_EARNED_REWARD: Reward: " .. tostring(message.amount) .. " " .. tostring(message.type))
		elseif message.event == admob.EVENT_IMPRESSION_RECORDED then
			print("EVENT_IMPRESSION_RECORDED: Rewarded did record impression")
		elseif message.event == admob.EVENT_CLICKED then
			print("EVENT_CLICKED: Rewarded clicked")
		elseif message.event == admob.EVENT_JSON_ERROR then
			print("EVENT_JSON_ERROR: Internal NE json error: "..message.error)
		end
	elseif message_id == admob.MSG_BANNER then
		if message.event == admob.EVENT_LOADED then
			print("EVENT_LOADED: Banner AD loaded. Height: "..message.height.."px Width: "..message.width.."px")
			set_block_height(message.height)
		elseif message.event == admob.EVENT_OPENING then
			print("EVENT_OPENING: Banner AD is opening")
		elseif message.event == admob.EVENT_FAILED_TO_LOAD then
			print("EVENT_FAILED_TO_LOAD: Banner AD failed to load\nCode: "..message.code.."\nError: "..message.error)
		elseif message.event == admob.EVENT_CLICKED then
			print("EVENT_CLICKED: Banner AD clicked")
		elseif message.event == admob.EVENT_CLOSED then
			print("EVENT_CLOSED: Banner AD closed")
		elseif message.event == admob.EVENT_DESTROYED then
			print("EVENT_DESTROYED: Banner AD destroyed")
		elseif message.event == admob.EVENT_IMPRESSION_RECORDED then
			print("EVENT_IMPRESSION_RECORDED: Banner did record impression")
		elseif message.event == admob.EVENT_JSON_ERROR then
			print("EVENT_JSON_ERROR: Internal NE json error: "..message.error)
		end
	end
	update_ui(self)
end

function init(self)
	msg.post(".", "acquire_input_focus")

	local engine_info = sys.get_engine_info()
	self.is_debug = engine_info.is_debug

	if self.is_debug then
		if sys.get_sys_info().system_name == 'iPhone OS' then
			self.banner_ad_unit = "ca-app-pub-3940256099942544/2934735716" -- test unit for banners
			self.interstitial_ad_unit = "ca-app-pub-3940256099942544/4411468910" -- test unit for interstitial
			self.rewardedvideo_ad_unit = "ca-app-pub-3940256099942544/1712485313" -- test unit for rewarded
		else --Android
			self.banner_ad_unit = "ca-app-pub-3940256099942544/6300978111" -- test unit for banners
			self.interstitial_ad_unit = "ca-app-pub-3940256099942544/1033173712" -- test unit for interstitial
			self.rewardedvideo_ad_unit = "ca-app-pub-3940256099942544/5224354917" -- test unit for rewarded
		end
	else
		if sys.get_sys_info().system_name == 'iPhone OS' then
			self.banner_ad_unit = "xxxxxxx" -- real
			self.interstitial_ad_unit = "xxxxxxx" -- real
			self.rewardedvideo_ad_unit = "xxxxxxx" --  real
		else --Android
			self.banner_ad_unit = "xxxxxxx" --  real
			self.interstitial_ad_unit = "xxxxxxx" -- real
			self.rewardedvideo_ad_unit = "xxxxxxx" -- real
		end
	end

	self.show_pos = 1
	self.banner_positions = {
		"POS_BOTTOM_CENTER",
		"POS_BOTTOM_LEFT",
		"POS_BOTTOM_RIGHT",
		"POS_NONE",
		"POS_TOP_LEFT",
		"POS_TOP_CENTER",
		"POS_TOP_RIGHT",
		"POS_CENTER"
	}

	if admob then
		admob.set_callback(admob_callback)
		admob.set_privacy_settings(true)
	end
	update_ui(self)
end

function final(self)
	msg.post(".", "release_input_focus")
end

function on_message(self, message_id, message, sender)
	if not admob then
		return
	end
	
	local prev_type = self.ad_type

	if prev_type ~= self.ad_type then
		update_ui(self)
	end

	if message_id == hash("initialization_box") then
		self.initialized = true
		print("initialization_box DONE!")
		if message_id == hash("show_initialize") then
			print("admob.initialize()")
			admob.initialize()
		end
	end

	if message_id == hash("show_idfa") then
		print("admob.request_idfa()")
		admob.request_idfa()
	end

	if message_id == hash("show_reward") then
		self.ad_type = admob.MSG_REWARDED
		print("admob.load_rewarded()")
		admob.load_rewarded(self.rewardedvideo_ad_unit)
		print("admob.show_rewarded()")
		admob.show_rewarded()
		msg.post("easy:/go#easygui", "reward_finished")
	end

	if message_id == hash("show_banner") then
		self.ad_type = admob.MSG_BANNER
		print("admob.load_banner()")
		admob.load_banner(self.banner_ad_unit)
		print("admob.show_banner( admob."..self.banner_positions[self.show_pos]..")")
		admob.show_banner(admob[self.banner_positions[self.show_pos]])
		self.show_pos = self.show_pos + 1
		if self.show_pos > #self.banner_positions then
			self.show_pos = 1
		end
		msg.post("easy:/go#easygui", "banner_finished")
	end

	if message_id == hash("show_interstitial") then
		self.ad_type = admob.MSG_INTERSTITIAL
		print("admob.load_interstitial()")
		admob.load_interstitial(self.interstitial_ad_unit)
		print("admob.show_interstitial()")
		admob.show_interstitial()
		msg.post("easy:/go#easygui", "interstitial_finished")
	end

	if message_id == hash("show_inspector") then
		print("admob.show_ad_inspector()")
		admob.show_ad_inspector()
	end
end

Screenshot

Screen Shot 2022-11-04 at 12 44 29

Any suggestions?

[IOS] Error on build

Error on build: Defold: 1.6.3, extension-admob: 3.4.1
photo_5343813290985378504_w

[!] The abstract target Pods is not inherited by a concrete target, so the following dependencies won't make it into any targets in your project:
- Google-Mobile-Ads-SDK (= 10.14.0)

at com.defold.extender.ProcessExecutor.execute(ProcessExecutor.java:77)
at com.defold.extender.services.CocoaPodsService.execCommand(CocoaPodsService.java:1286)
... 14 more

Log.txt - log.txt

Without extension - build successfully

Error on build

On Linux, when trying to build-and-launch for dmengine on Android, I get this error message:

Build server output: Unsupported platform x86_64-linux ext.manifest /testadmob/content/admob Unknown Problem

Correct usage of api in Collection proxy

When use this extension in collection proxy, I use the api like this:

local initialized = false
local function admob_callback(self, message_id, message)
    if message_id == admob.MSG_INITIALIZATION then
        initialized = true
        if message.event == admob.EVENT_COMPLETE then
            print("EVENT_COMPLETE: Initialization complete")
        elseif message.event == admob.EVENT_JSON_ERROR then
            print("EVENT_JSON_ERROR: Internal NE json error " .. message.error)
        end
    elseif message_id == admob.MSG_INTERSTITIAL then
        if message.event == admob.EVENT_CLOSED then
            print("ad close")
        elseif message.event == admob.EVENT_LOADED then
            print("EVENT_LOADED: Interstitial AD loaded")

        elseif message.event == admob.EVENT_FAILED_TO_LOAD then
            print(
                "EVENT_FAILED_TO_LOAD: Interstitial AD failed to load\nCode: " ..
                    message.code .. "\nError: " .. message.error)
        elseif message.event == admob.EVENT_NOT_LOADED then
            print(
                "EVENT_NOT_LOADED: can't call show_interstitial() before EVENT_LOADED\nError: " ..
                    message.error)
        end
        print("admob_callback", message_id, message.code, message.error)
    end
end

function init(self)
    if initialized == false then
        admob.set_callback(admob_callback)
        admob.set_privacy_settings(true)
        admob.request_idfa()
        admob.initialize()
        admob.set_max_ad_content_rating(admob.MAX_AD_CONTENT_RATING_G)
    end
    admob.load_interstitial(self.interstitial_ad_unit)
end

The first i load this proxy, i get the event admob.EVENT_LOADED successfully, but when i unload this proxy and load it again, I can never get the event admob.EVENT_LOADED again.
Maybe the api usage like this is not right.
Any help is welcome.Thanks

Build Error after add firebase-analytics extension.

Below are my dependencies:
image
After add extension-firebase-1.4.1 and extension-firebase-analytics-2.2.1, i can not bundle android app any more.
Below is error message:
image
The log.txt content:

java -jar /opt/local/bin/manifestmergetool.jar --platform android --main /tmp/job14926647625299425238/upload/AndroidManifest.xml  --lib /tmp/job14926647625299425238/upload/firebase/manifests/android/AndroidManifest.xml  --lib /tmp/job14926647625299425238/upload/extension-admob/manifests/android/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.slidingpanelayout-slidingpanelayout-1.0.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-19.5.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-18.0.3.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.1.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.customview-customview-1.0.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.work-work-runtime-2.7.0.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.0.1.aar/AndroidManifest.xml  --lib /tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/AndroidManifest.xml  --lib 
aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-ca/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar


aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-eu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-lv/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-kk/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-mn/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-zu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-ur/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/values-tr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/res/drawable-mdpi-v4/googleg_disabled_color_18.png -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-base-18.0.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-or/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-zh-rHK/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ar/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-bn/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-pa/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-sv/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-mk/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-pt-rPT/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-sq/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-sl/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-am/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-nb/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/drawable/admob_close_button_white_circle_black_cross.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/drawable/admob_close_button_black_circle_white_cross.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-si/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-zh-rTW/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ca/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-gl/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-te/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-sk/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-hy/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-in/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-bg/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-it/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ms/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ka/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-de/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-hu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ta/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-iw/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-eu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-lv/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-kk/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-mn/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-zu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ur/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-tr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-uk/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-as/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-th/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-en-rGB/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-cs/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-my/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-nl/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-es-rUS/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-es/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-mr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-fa/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ru/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-hr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-fr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-af/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ko/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-et/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ml/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-da/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-is/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-pl/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-tl/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-lo/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-b+sr+Latn/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-fr-rCA/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-hi/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-fi/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-vi/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ro/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ky/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-zh-rCN/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-lt/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-km/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-bs/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-be/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-gu/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ne/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-az/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-ja/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-sr/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-uz/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-kn/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 compile /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/res/values-el/values.xml -o /tmp/job14926647625299425238/build/compiledResources/com.google.android.gms-play-services-ads-21.3.0.aar

aapt2 link --extra-packages androidx.annotation.experimental:com.google.android.gms.common:androidx.core:androidx.coordinatorlayout:androidx.work:androidx.browser:com.google.android.gms.base:com.google.android.gms.ads:com.google.android.gms.ads.impl:androidx.startup:androidx.work:com.google.android.gms.common:androidx.startup:com.google.android.gms.common:com.google.android.gms.common --proto-format --non-final-ids --auto-add-overlay --manifest /tmp/job14926647625299425238/build/AndroidManifest.xml -I /opt/platformsdk/android/android-sdk-linux/platforms/android-33/android.jar --java /tmp/job14926647625299425238/build/out_java -o /tmp/job14926647625299425238/build/compiledresources.apk --emit-ids /tmp/job14926647625299425238/build/resource_ids.txt -R @/tmp/job14926647625299425238/build/compiledresources.txt

javac -source 1.8 -target 1.8 -J-Xms2048m -J-Xmx2048m -classpath /opt/platformsdk/android/android-sdk-linux/platforms/android-33/android.jar:/tmp/job14926647625299425238/build/tmp0rjava/classes -d /tmp/job14926647625299425238/build/tmp0rjava/classes @/tmp/job14926647625299425238/build/tmp0rjava/sources.txt
warning: [options] bootstrap class path not set in conjunction with -source 8
1 warning

jar cf /tmp/job14926647625299425238/build/tmp0rjava/R.jar -C /tmp/job14926647625299425238/build/tmp0rjava/classes .

javac -source 1.8 -target 1.8 -J-Xms2048m -J-Xmx2048m -classpath /opt/platformsdk/android/android-sdk-linux/platforms/android-33/android.jar:/tmp/job14926647625299425238/upload/extension-admob/src:/tmp/job14926647625299425238/build/tmp1javac/classes:/tmp/job14926647625299425238/build/tmp0rjava/R.jar:/tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.slidingpanelayout-slidingpanelayout-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-common-19.5.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-18.0.3.aar/classes.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.room-room-common-2.2.5.jar:/tmp/.gradle/unpacked/androidx.customview-customview-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.work-work-runtime-2.7.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.0.1.aar/classes.jar:/tmp/.gradle/unpacked/androidx.arch.core-core-common-2.1.0.jar:/tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-installations-16.3.5.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-analytics-18.0.3.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-lite-21.3.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-identifier-18.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-base-21.3.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.collection-collection-1.1.0.jar:/tmp/.gradle/unpacked/androidx.drawerlayout-drawerlayout-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.documentfile-documentfile-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-installations-interop-16.0.1.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-measurement-connector-18.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-api-18.0.3.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.ump-user-messaging-platform-2.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.concurrent-concurrent-futures-1.0.0.jar:/tmp/.gradle/unpacked/androidx.swiperefreshlayout-swiperefreshlayout-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-service-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-annotations-16.0.0.jar:/tmp/.gradle/unpacked/androidx.sqlite-sqlite-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.coordinatorlayout-coordinatorlayout-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-ui-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.annotation-annotation-experimental-1.1.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.tracing-tracing-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-basement-18.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.core-core-1.6.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.versionedparcelable-versionedparcelable-1.1.1.aar/classes.jar:/tmp/.gradle/unpacked/androidx.interpolator-interpolator-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.viewpager-viewpager-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-utils-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-20.1.2.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-base-20.1.2.aar/classes.jar:/tmp/.gradle/unpacked/com.google.firebase-firebase-components-16.1.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-runtime-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.asynclayoutinflater-asynclayoutinflater-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.sqlite-sqlite-framework-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-18.0.3.aar/classes.jar:/tmp/.gradle/unpacked/androidx.localbroadcastmanager-localbroadcastmanager-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.fragment-fragment-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.cursoradapter-cursoradapter-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-appset-16.0.1.aar/classes.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-2.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-common-2.1.0.jar:/tmp/.gradle/unpacked/androidx.browser-browser-1.4.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.print-print-1.0.0.aar/classes.jar:/tmp/.gradle/unpacked/androidx.annotation-annotation-1.2.0.jar:/tmp/.gradle/unpacked/com.google.guava-listenablefuture-1.0.jar:/tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-2.1.0.aar/classes.jar:/tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/classes.jar -d /tmp/job14926647625299425238/build/tmp1javac/classes @/tmp/job14926647625299425238/build/tmp1javac/sources.txt
warning: [options] bootstrap class path not set in conjunction with -source 8
Note: /tmp/job14926647625299425238/upload/extension-admob/src/java/com/defold/admob/AdmobJNI.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 warning

jar cf /tmp/job14926647625299425238/build/tmp1javac/output.jar -C /tmp/job14926647625299425238/build/tmp1javac/classes .

d8 --main-dex-list /tmp/job14926647625299425238/build/main_dex_list.txt --output /tmp/job14926647625299425238/build --release --lib /opt/platformsdk/android/android-sdk-linux/platforms/android-33/android.jar /var/extender/sdk/7a608d3ce6ed895d484956c1e76110ed8b78422a/defoldsdk//ext/share/java/android-support-multidex.jar /var/extender/sdk/7a608d3ce6ed895d484956c1e76110ed8b78422a/defoldsdk//ext/share/java/androidx-multidex.jar /var/extender/sdk/7a608d3ce6ed895d484956c1e76110ed8b78422a/defoldsdk//share/java/glfw_android.jar /var/extender/sdk/7a608d3ce6ed895d484956c1e76110ed8b78422a/defoldsdk//share/java/gamesys_android.jar /var/extender/sdk/7a608d3ce6ed895d484956c1e76110ed8b78422a/defoldsdk//share/java/sound_android.jar /tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.slidingpanelayout-slidingpanelayout-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-common-19.5.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-18.0.3.aar/classes.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.room-room-common-2.2.5.jar /tmp/.gradle/unpacked/androidx.customview-customview-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.work-work-runtime-2.7.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.0.1.aar/classes.jar /tmp/.gradle/unpacked/androidx.arch.core-core-common-2.1.0.jar /tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-16.3.5.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-analytics-18.0.3.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-lite-21.3.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-identifier-18.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-base-21.3.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.collection-collection-1.1.0.jar /tmp/.gradle/unpacked/androidx.drawerlayout-drawerlayout-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.documentfile-documentfile-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-interop-16.0.1.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-measurement-connector-18.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-api-18.0.3.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.ump-user-messaging-platform-2.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.concurrent-concurrent-futures-1.0.0.jar /tmp/.gradle/unpacked/androidx.swiperefreshlayout-swiperefreshlayout-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-service-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-annotations-16.0.0.jar /tmp/.gradle/unpacked/androidx.sqlite-sqlite-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.coordinatorlayout-coordinatorlayout-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-ui-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.annotation-annotation-experimental-1.1.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.tracing-tracing-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-basement-18.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.core-core-1.6.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.versionedparcelable-versionedparcelable-1.1.1.aar/classes.jar /tmp/.gradle/unpacked/androidx.interpolator-interpolator-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.viewpager-viewpager-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-utils-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-20.1.2.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-base-20.1.2.aar/classes.jar /tmp/.gradle/unpacked/com.google.firebase-firebase-components-16.1.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-runtime-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.asynclayoutinflater-asynclayoutinflater-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.sqlite-sqlite-framework-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-18.0.3.aar/classes.jar /tmp/.gradle/unpacked/androidx.localbroadcastmanager-localbroadcastmanager-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.fragment-fragment-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.cursoradapter-cursoradapter-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-appset-16.0.1.aar/classes.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-2.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-common-2.1.0.jar /tmp/.gradle/unpacked/androidx.browser-browser-1.4.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.print-print-1.0.0.aar/classes.jar /tmp/.gradle/unpacked/androidx.annotation-annotation-1.2.0.jar /tmp/.gradle/unpacked/com.google.guava-listenablefuture-1.0.jar /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-2.1.0.aar/classes.jar /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-21.3.0.aar/classes.jar /tmp/job14926647625299425238/build/tmp0rjava/R.jar /tmp/job14926647625299425238/build/tmp1javac/output.jar 
Error in /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class:
Type com.google.android.gms.internal.measurement.zzbu is defined multiple times: /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class, /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-20.1.2.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class
Compilation failed
Exception in thread "main" java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class
	at com.android.tools.r8.utils.w.a(SourceFile:92)
	at com.android.tools.r8.D8.main(D8.java:4)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class
	at Version.fakeStackEntry(Version_3.0.41-sc03.java:0)
	at com.android.tools.r8.utils.w.a(SourceFile:68)
	at com.android.tools.r8.utils.w.a(SourceFile:28)
	at com.android.tools.r8.utils.w.a(SourceFile:27)
	at com.android.tools.r8.utils.w.b(SourceFile:3)
	at com.android.tools.r8.D8.a(D8.java:17)
	at com.android.tools.r8.D8.a(D8.java:15)
	at com.android.tools.r8.utils.w.a(SourceFile:84)
	... 1 more
Caused by: com.android.tools.r8.internal.b: Type com.google.android.gms.internal.measurement.zzbu is defined multiple times: /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-18.0.3.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class, /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-20.1.2.aar/classes.jar:com/google/android/gms/internal/measurement/zzbu.class
	at com.android.tools.r8.internal.TA.a(SourceFile:14)
	at com.android.tools.r8.internal.TA.a(SourceFile:22)
	at com.android.tools.r8.internal.Ew.b(SourceFile:6)
	at com.android.tools.r8.internal.Ew.a(SourceFile:23)
	at com.android.tools.r8.internal.Ew.a(SourceFile:10)
	at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048)
	at com.android.tools.r8.internal.Ew.a(SourceFile:6)
	at com.android.tools.r8.graph.I0$c.f(SourceFile:3)
	at com.android.tools.r8.dex.a.a(SourceFile:94)
	at com.android.tools.r8.dex.a.a(SourceFile:23)
	at com.android.tools.r8.D8.a(D8.java:21)
	at com.android.tools.r8.D8.d(D8.java:6)
	at com.android.tools.r8.D8.c(D8.java:1)
	at com.android.tools.r8.utils.w.a(SourceFile:24)
	... 5 more


I don't konw what's going on. Any help is welcome.

NonSdkApiUsedViolation after upload to Google Play

Banner works without any issues before uploading release package to Google Play.

Stack trace from Pre-launch report:

StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Ljava/nio/Buffer;->address:J
at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
at java.lang.Class.getDeclaredField(Native Method)
at com.google.android.gms.internal.ads.zzewd.zzC(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzewd.zzB(com.google.android.gms:play-services-ads@@20.1.0:3)
at com.google.android.gms.internal.ads.zzewd.(com.google.android.gms:play-services-ads@@20.1.0:34)
at com.google.android.gms.internal.ads.zzewd.zzq(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzeur.(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzeur.zzl(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzeug.zza(com.google.android.gms:play-services-ads@@20.1.0:10)
at com.google.android.gms.internal.ads.zzeuw.zzb(com.google.android.gms:play-services-ads@@20.1.0:3)
at com.google.android.gms.internal.ads.zzetd.zzag(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzetd.zzah(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzclp.zzb(com.google.android.gms:play-services-ads@@20.1.0:7)
at com.google.android.gms.internal.ads.zzeyk.zzb(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzcmt.zza(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzcma.zzb(com.google.android.gms:play-services-ads@@20.1.0:3)
at com.google.android.gms.internal.ads.zzeyk.zzb(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzeyu.zzc(com.google.android.gms:play-services-ads@@20.1.0:4)
at com.google.android.gms.internal.ads.zzdvh.zza(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzdvg.zzb(com.google.android.gms:play-services-ads@@20.1.0:3)
at com.google.android.gms.internal.ads.zzeyk.zzb(com.google.android.gms:play-services-ads@@20.1.0:1)
at com.google.android.gms.internal.ads.zzbju.zzb(com.google.android.gms:play-services-ads@@20.1.0:5)
at com.google.android.gms.internal.ads.zzdna.zza(com.google.android.gms:play-services-ads@@20.1.0:43)
at com.google.android.gms.internal.ads.zzdci.zzN(com.google.android.gms:play-services-ads@@20.1.0:4)
at com.google.android.gms.internal.ads.zzdci.zze(com.google.android.gms:play-services-ads@@20.1.0:2)
at com.google.android.gms.internal.ads.zzacs.zzg(com.google.android.gms:play-services-ads-lite@@20.1.0:22)
at com.google.android.gms.ads.BaseAdView.loadAd(com.google.android.gms:play-services-ads-lite@@20.1.0:1)
at com.defold.admob.AdmobJNI$7.run(AdmobJNI.java:450)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Permission related error when trying to create a release with AdMob extension included

In my app declaration, I've declared that I use an advertising ID (because Admob does). I've updated my manifest in my Defold App to include the required permission (see below).

Error

Your advertising ID declaration in Play Console says that your app uses advertising ID. A manifest file in one of your active artifacts doesn't include the com.google.android.gms.permission.AD_ID permission.

If you don't include this permission in your manifest file, your advertising identifier will be zeroed out. This may break your advertising and analytics use cases, and cause loss of revenue. Learn more

You can remove these errors by updating your advertising ID declaration
Apps that target Android 13 (API 33) without the AD_ID permission will have their advertising identifier zeroed out. This may impact advertising and analytics use-cases. Learn more

Screenshot 2024-06-19 143519

Screenshot 2024-06-19 144226

Screenshot 2024-06-19 144456

Screenshot 2024-06-19 144549

App crash on iPhone with version 3.5.0+

Build with version 3.4.0 working well but not with version 3.5.0 and 3.6.0.

I tested on my iPhone X, iOS 16.7.2

It's strange that 3.5.0+ works on iphone 15 simulator, iOS 17

Pause game engine during video & rewarded ads

Hello! Finally tinkering away with my games again, and have run into a problem with iOS vs Android.

On Android, when you show a rewarded video, the game completely pauses, and no code is executed again until the ad is closed.

On iOS, unfortunately for me, the game code continues to run while the ad is being displayed. This has led to unexpected bugs, since I developed first on Android.

Main issues this causes:

  1. We have to write code to pause/resume music
  2. Code that executes in the "reward completed" callback will execute before the game is visible again. On Android that is not the case.

I can code around these for now, but it would be convenient to make the platforms behave similarly if possible.

Unity's ad sdks have a convenience function SetiOSAppPauseOnBackground(true), but I am not sure how it works since it calls some External code.

https://github.com/googleads/googleads-mobile-unity/blob/main/source/plugin/Assets/GoogleMobileAds/Platforms/iOS/MobileAdsClient.cs#L88

I wasn't sure if this would be better solved in this extension or the engine itself. I experienced a similar problem with DefVideoAds before I switched to Admob. Happy to move the request if needed.

Have a nice holiday season!

Crash when viewing ads.

crash
When viewed for the first time, it works fine, but when you view ads again in the same game session, the game just closes, giving these errors. Another cache of the game grows to 4 mb.

Can't build a project with the extension

Every time I try building my project with extension-admob, I get this error message :
Build failed: Resource 'dirtylarry/button.gui' is not created

With that stacktrace :

com.dynamo.bob.CompileExceptionError: Resource 'dirtylarry/button.gui' is not created
	at com.dynamo.bob.Project.build(Project.java:343)
	at com.dynamo.cr.editor.builders.ContentBuilder.buildLocal(ContentBuilder.java:135)
	at com.dynamo.cr.editor.builders.ContentBuilder.build(ContentBuilder.java:81)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)
	at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
	at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
	at org.eclipse.core.internal.resources.Project.build(Project.java:124)
	at com.dynamo.cr.editor.handlers.LaunchHandler$1.run(LaunchHandler.java:153)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.IllegalArgumentException: Resource 'dirtylarry/button.gui' is not created
	at com.dynamo.bob.fs.DefaultFileSystem.calcSha1(DefaultFileSystem.java:46)
	at com.dynamo.bob.fs.DefaultFileSystem.sha1(DefaultFileSystem.java:67)
	at com.dynamo.bob.fs.DefaultResource.sha1(DefaultResource.java:75)
	at com.dynamo.bob.Task.calculateSignature(Task.java:120)
	at com.dynamo.bob.Project.runTasks(Project.java:844)
	at com.dynamo.bob.Project.doBuild(Project.java:728)
	at com.dynamo.bob.Project.build(Project.java:335)
	... 13 more

Extension doesn't work like a library (DEF-2795)

If I add extension like a dependency - it doesn't work.
Cloud build return error:
No resource found that matches the given name (at 'theme' with value @style.Theme.IAPTheme)

All works fine if add folder admob into project

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.