Failed to bundle android application with error: "failed: prelude.lua:361 Bob invocation failed"

Hi,

After adding the extension-admob and extension-iap to my project, it fails to bundle for android. Before adding these two extensions my game would bundle for android without any problems.

The error I get is :

ERROR:EXT: Bundling 'Android Application...' failed: prelude.lua:361 Bob invocation failed

And below is the build log (I believe it may be the failure to merge manifests that causes this, but I wont know how to fix this):

Job id: job9459379594738864660; traceId: bee9c04b0fa95155d08967ac5d4a1e58java -jar /etc/extender/apps/manifestmergetool.jar --platform android --main /tmp/job10581053279989154963/upload/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-iap/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-admob/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/firebase/manifests/android/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-17.2.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.annotation-annotation-experimental-1.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-interop-17.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-base-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-base-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.android.billingclient-billing-7.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-ktx-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.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/androidx.savedstate-savedstate-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-process-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-backend-cct-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-basement-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-identifier-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-analytics-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-components-17.1.5.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.documentfile-documentfile-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-api-3.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-service-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-runtime-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-savedstate-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.activity-activity-1.2.3.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.fragment-fragment-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-places-placereport-17.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.tracing-tracing-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-java-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.versionedparcelable-versionedparcelable-1.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.interpolator-interpolator-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.viewpager-viewpager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-location-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-utils-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-framework-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.localbroadcastmanager-localbroadcastmanager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-encoders-json-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-measurement-connector-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-appset-16.0.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-ktx-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-runtime-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-lite-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.browser-browser-1.4.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.ump-user-messaging-platform-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.print-print-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-21.5.1.aar/AndroidManifest.xml --out /tmp/job10581053279989154963/build/AndroidManifest.xml
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: /tmp/job10581053279989154963/upload/AndroidManifest.xml Warning:
	Namespace 'com.farazkhandev.pixelcommander' is used in multiple modules and/or libraries: AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml. Please ensure that all modules and libraries have a unique namespace. For more information, See https://developer.android.com/studio/build/configure-app-module#set-namespace
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper error
SEVERE: /tmp/job10581053279989154963/upload/AndroidManifest.xml:32:13-58 Error:
	Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58
	is also present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
	Suggestion: add 'tools:replace="android:resource"' to <property> element at AndroidManifest.xml to override.
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: 
See https://developer.android.com/r/studio-ui/build/manifest-merger for more information about the manifest merger.

Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.ManifestMergeTool main
SEVERE: java.lang.RuntimeException: Failed to merge manifests: com.android.manifmerger.MergingReport@a514af7
com.defold.extender.ExtenderException: java.io.IOException: java -jar /etc/extender/apps/manifestmergetool.jar --platform android --main /tmp/job10581053279989154963/upload/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-iap/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-admob/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/firebase/manifests/android/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-17.2.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.annotation-annotation-experimental-1.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-interop-17.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-base-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-base-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.android.billingclient-billing-7.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-ktx-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.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/androidx.savedstate-savedstate-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-process-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-backend-cct-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-basement-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-identifier-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-analytics-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-components-17.1.5.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.documentfile-documentfile-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-api-3.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-service-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-runtime-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-savedstate-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.activity-activity-1.2.3.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.fragment-fragment-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-places-placereport-17.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.tracing-tracing-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-java-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.versionedparcelable-versionedparcelable-1.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.interpolator-interpolator-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.viewpager-viewpager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-location-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-utils-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-framework-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.localbroadcastmanager-localbroadcastmanager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-encoders-json-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-measurement-connector-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-appset-16.0.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-ktx-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-runtime-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-lite-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.browser-browser-1.4.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.ump-user-messaging-platform-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.print-print-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-21.5.1.aar/AndroidManifest.xml --out /tmp/job10581053279989154963/build/AndroidManifest.xml
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: /tmp/job10581053279989154963/upload/AndroidManifest.xml Warning:
	Namespace 'com.farazkhandev.pixelcommander' is used in multiple modules and/or libraries: AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml. Please ensure that all modules and libraries have a unique namespace. For more information, See https://developer.android.com/studio/build/configure-app-module#set-namespace
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper error
SEVERE: /tmp/job10581053279989154963/upload/AndroidManifest.xml:32:13-58 Error:
	Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58
	is also present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
	Suggestion: add 'tools:replace="android:resource"' to <property> element at AndroidManifest.xml to override.
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: 
See https://developer.android.com/r/studio-ui/build/manifest-merger for more information about the manifest merger.

Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.ManifestMergeTool main
SEVERE: java.lang.RuntimeException: Failed to merge manifests: com.android.manifmerger.MergingReport@a514af7

	at com.defold.extender.Extender.executeCommand(Extender.java:390)
	at com.defold.extender.Extender.buildManifests(Extender.java:2747)
	at com.defold.extender.Extender.build(Extender.java:2782)
	at com.defold.extender.AsyncBuilder.asyncBuildEngine(AsyncBuilder.java:122)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:114)
	at org.springframework.scheduling.concurrent.DelegatingErrorHandlingCallable.call(DelegatingErrorHandlingCallable.java:52)
	at io.micrometer.context.ContextSnapshot.lambda$wrap$1(ContextSnapshot.java:106)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.io.IOException: java -jar /etc/extender/apps/manifestmergetool.jar --platform android --main /tmp/job10581053279989154963/upload/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-iap/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/extension-admob/manifests/android/AndroidManifest.xml --lib /tmp/job10581053279989154963/upload/firebase/manifests/android/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-17.2.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.startup-startup-runtime-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.annotation-annotation-experimental-1.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-installations-interop-17.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-base-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.loader-loader-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-tasks-18.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-base-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.android.billingclient-billing-7.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-ktx-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.room-room-runtime-2.2.5.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/androidx.savedstate-savedstate-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-process-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-backend-cct-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-basement-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.arch.core-core-runtime-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-identifier-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-analytics-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-components-17.1.5.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.documentfile-documentfile-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-api-3.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-sdk-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-service-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-core-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-base-18.3.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-runtime-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-savedstate-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.activity-activity-1.2.3.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.fragment-fragment-1.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-common-20.4.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-places-placereport-17.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.tracing-tracing-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.privacysandbox.ads-ads-adservices-java-1.0.0-beta05.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.versionedparcelable-versionedparcelable-1.1.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.interpolator-interpolator-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.viewpager-viewpager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-location-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.legacy-legacy-support-core-utils-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.sqlite-sqlite-framework-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.localbroadcastmanager-localbroadcastmanager-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-encoders-json-18.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.firebase-firebase-measurement-connector-19.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-appset-16.0.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.core-core-ktx-1.9.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-api-21.5.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-viewmodel-2.3.1.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-stats-17.0.2.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.datatransport-transport-runtime-3.1.8.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-ads-lite-22.6.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.browser-browser-1.4.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.ump-user-messaging-platform-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.print-print-1.0.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/androidx.lifecycle-lifecycle-livedata-2.1.0.aar/AndroidManifest.xml --lib /tmp/.gradle/unpacked/com.google.android.gms-play-services-measurement-impl-21.5.1.aar/AndroidManifest.xml --out /tmp/job10581053279989154963/build/AndroidManifest.xml
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: /tmp/job10581053279989154963/upload/AndroidManifest.xml Warning:
	Namespace 'com.farazkhandev.pixelcommander' is used in multiple modules and/or libraries: AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml, AndroidManifest.xml. Please ensure that all modules and libraries have a unique namespace. For more information, See https://developer.android.com/studio/build/configure-app-module#set-namespace
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper error
SEVERE: /tmp/job10581053279989154963/upload/AndroidManifest.xml:32:13-58 Error:
	Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58
	is also present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
	Suggestion: add 'tools:replace="android:resource"' to <property> element at AndroidManifest.xml to override.
Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.AndroidManifestMerger$ILoggerWrapper warning
WARNING: 
See https://developer.android.com/r/studio-ui/build/manifest-merger for more information about the manifest merger.

Jul 05, 2025 10:16:50 AM com.defold.manifestmergetool.ManifestMergeTool main
SEVERE: java.lang.RuntimeException: Failed to merge manifests: com.android.manifmerger.MergingReport@a514af7

	at com.defold.extender.process.ProcessExecutor.execute(ProcessExecutor.java:90)
	at com.defold.extender.process.ProcessExecutor.execute(ProcessExecutor.java:29)
	at com.defold.extender.Extender.executeCommand(Extender.java:386)
	... 16 more

My minimum SDK version is 23 and target SDK version is 35

Thanks

And it works if you add only one of them? I’m surprised that extension-iap doesn’t work on it’s own!

Are you using a custom AndroidManifest.xml in your project?

Hi,

No, I’m not using any custom AndroidManifest.xml

And I tried building with extension-iap only and it built successfully.

Then I tried building with extension-admob only and building failed.

I tried again with both extensions and it failed again.

So its the admob extension that is causing the build to fail.

I am using this for admob: https://github.com/defold/extension-admob/archive/refs/tags/3.6.0.zip

and this for iap: https://github.com/defold/extension-iap/archive/refs/tags/6.3.0.zip

My defold version is: 1.10.2

I tried the sample project that is included with the extension and it builds ok for Android. Did you add the required admob fields to your game.project files?

Yes, I already have those added to my game.project file, as suggested

Ok, could you please try downloading https://github.com/defold/extension-admob/archive/refs/tags/3.6.0.zip and open it as a Defold project and build it for Android?

please take a look Defold engine and editor FAQ

1 Like

Yes, the Admob project built and I was able to install on my connected android device as well.

Then it must conflict with some of the extensions I am using. My project uses the following extensions.

In Unity, The usual culprit is firebase and sure enough, when I added the firebase extensions:

The Admob project failed as well and I got the same error.

Ok, please open a ticket on GitHub in the extension-firebase repository and include your list of extensions. I’ll take a look.

Thanks, issue created with all relevant details Android build fails when admob extension is also used in project · Issue #19 · defold/extension-firebase · GitHub

Thanks, that appears to be the same problem as I am having and I also tried the suggested workaround of a custom AndroidManifest.xml.

With the custom manifest, the build completes. But admob extension does not work and initialization callback never happens.

I added more detail here: Android build fails when admob extension is also used in project · Issue #19 · defold/extension-firebase · GitHub

hi there,

I’m really sorry to ask this, but is there an ETA on this fix?

I’m asking because my game is ready to launch and everything is done and I’m just waiting on this fix. Or is there a workaround that can work for me? As mentioned the workaround mentioned above does not work as it finishes the build, but the admob module never initializes, callback for initialization is never called.

Worst case scenario is that I can build and ship my game without firebase, but then I would not have any analytics at all as this is the only analytics I used.

Sorry again to be asking this, i know how busy you guys are :frowning:

Also, one thing I noticed while checking the sample admob project is that in the game.project file it has:

[library]
include_dirs = extension-admob

but in my game.project, I have:

[library]
include_dirs = astar

Can this be the reason? should I add the admob and firebase libraries in the [library] tag?

Thanks

1 Like

I dont think this might be causing the issue, but you don’t need to add any of these in the [library] tag. It’s enough to add them as dependencies, as you did.
More info about libs:

1 Like

Ok, so I managed to fix this. And the reason was improper implementation of admob callback and that is why the admob was never initialized.

The workaround suggested above of a custom AndroidManifest.xml works.

Now here is what happened:

To implement the admob extension, I followed the example script here: extension-admob/main/ads.gui_script at master · defold/extension-admob · GitHub

Here, the callback is declared as:

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

Since, i was writing this callback as a mobule, and not a gui_script and I had no need for the self argument, I omitted it, as we usually do when a function does not use self.

So, my callback declaration was as such:

local function admob_callback(message_id, message)

    if message_id == admob.MSG_INITIALIZATION then
        if message.event == admob.EVENT_COMPLETE then
            print("ADMOB_EVENT_COMPLETE: Initialization complete")
            admob_initialized = true
        elseif message.event == admob.EVENT_JSON_ERROR then
            print("ADMOB_EVENT_JSON_ERROR: Internal NE json error "..message.error)
        end

Now, little did I know that the message_id and message arguments are positional arguments, and by removing self, the message_id was taking some string value, and the message was given the value of message_id and message was being discarded.

This took way too long to figure out and wasted way too much time. If the 3 arguments are a MUST, then some log warning of some sort would have helped to say that this function EXPECTS 3 arguments.

ie, changing declaration to the below fixed it, even though Im not using self. Im sure any argument here such as some_string would have worked.. but I just wrote as the example and used self:

local function admob_callback(self, message_id, message)

The example uses self… what if we dont use self… it was only natural that I removed it..

I’m just glad to have it fixed and wanted to update here, so that someone else in my situation may benefit if they come accross this thread via a google search :slight_smile:

Callbacks have a defined signature, in this case three arguments; self, message_id and message. There is no way in Lua to check if you have used the correct function signature. It will be possible to check when we introduce Lua annotations and the LSP server is used to validate their use.

1 Like