AdMob Extension - open source now

So now I have a different really weird issue. I have two apps lets call them A and B
App A : If I use the AndroidManifest .xml thats suggest here I cannot install app it fails. My friend Can install. If I use the defold one I can install just fine.
App B: If I use the AndroidManifest .xml thats suggest here I can install but My friend cannot. If I use the defold one then we both can.

Same exact file is used in both instances. Anyone have any clue whats goign on?

Thanks.

What kind of message do you get? Are you installing via ADB?

Do you delete old app before installing? Are you using Project -> Bundle -> Android?

Yes project bundle Android no on the ADB. Making the app. and uninstalling before the new one
If it help the issue also happened when I pushed the update to the store I couldn’t install from play store but others could

I figured it out. android:authorities=“com.defold.adtest.firebaseinitprovider” was the same in the manifest for both apps and the phone did not like that. Thanks for the help

3 Likes

In some near future I plan to add support for Consent SDK to ease asking user permission for personalized ads.

1 Like

With the last version of the Defold engine, the Admob extension does not work.
It gives the following error:

“ERROR:SCRIPT: /main/main.gui_script:54: attempt to index global ‘admob’ (a nil value)”

Have you fetched the library into the project?

I downloaded the example project from GitHub. It seems to work in the PC, but when I try with my Android device I get that error.

You should use Project -> Bundle option instead of using live building with debug dmengine. Native extensions are not supported in the vanilla debug build. You can use hot reload if you bundle a debug APK with the extension and install it first.

Yeah, that is what I did. The app installation succeeds, but when I run it I get a crash.
The logcat is the following, I cannot understand what the problem is.

--------- beginning of crash
05-03 12:20:28.807  5456  5477 F libc    : Fatal signal 7 (SIGBUS), code 1, fault addr 0x30303064 in tid 5477 (Thread-1176)
05-03 12:20:28.912  5525  5525 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-03 12:20:28.912  5525  5525 F DEBUG   : Build fingerprint: 'HUAWEI/VTR-L09/HWVTR:8.0.0/HUAWEIVTR-L09/391(C02):user/release-keys'
05-03 12:20:28.912  5525  5525 F DEBUG   : Revision: '0'
05-03 12:20:28.912  5525  5525 F DEBUG   : ABI: 'arm'
05-03 12:20:28.912  5525  5525 F DEBUG   : pid: 5456, tid: 5477, name: Thread-1176  >>> com.emarkk.mapped <<<
05-03 12:20:28.912  5525  5525 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x30303064
05-03 12:20:28.912  5525  5525 F DEBUG   :     r0 30303064  r1 00000000  r2 00000004  r3 cae109a7
05-03 12:20:28.912  5525  5525 F DEBUG   :     r4 20676e69  r5 00000004  r6 cae109a8  r7 eaa03280
05-03 12:20:28.912  5525  5525 F DEBUG   :     r8 00000000  r9 cae107a0  sl 30303034  fp cae109a7
05-03 12:20:28.912  5525  5525 F DEBUG   :     ip ea9e9e08  sp cae10908  lr ea662a47  pc ea662502  cpsr 600d0030
05-03 12:20:28.925  5525  5525 F DEBUG   : 
05-03 12:20:28.925  5525  5525 F DEBUG   : backtrace:
05-03 12:20:28.925  5525  5525 F DEBUG   :     #00 pc 000ad502  /system/lib/libart.so (_ZN3artL16FindOatMethodForEPNS_9ArtMethodENS_11PointerSizeEPb+209)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #01 pc 000ada43  /system/lib/libart.so (_ZN3art9ArtMethod23GetOatQuickMethodHeaderEj+154)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #02 pc 0034b211  /system/lib/libart.so (_ZN3art12StackVisitor9WalkStackILNS0_16CountTransitionsE0EEEvb+380)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #03 pc 00359261  /system/lib/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMapb+184)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #04 pc 00355757  /system/lib/libart.so (_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMapb+34)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #05 pc 00346015  /system/lib/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+28)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #06 pc 00345e35  /system/lib/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+408)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #07 pc 0033a7b7  /system/lib/libart.so (_ZN3art7Runtime5AbortEPKc+110)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #08 pc 0033aeb3  /system/lib/libart.so (_ZN3art7Runtime7AborterEPKc+10)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #09 pc 003f3419  /system/lib/libart.so (_ZN7android4base10LogMessageD1Ev+456)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #10 pc 0033a3e1  /system/lib/libart.so (_ZN3art7Runtime19DetachCurrentThreadEv+264)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #11 pc 00234b03  /system/lib/libart.so (_ZN3art3JII19DetachCurrentThreadEP7_JavaVM+42)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #12 pc 00381a6c  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_glfwAndroidSetInputMethod+208)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #13 pc 001e1c50  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_ZN8dmEngine4InitEPNS_6EngineEiPPc+7984)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #14 pc 001e1d18  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_ZN8dmEngineL7InitRunEPN15dmEngineService13EngineServiceEiPPcPFvPNS_6EngineEPvES9_S7_+116)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #15 pc 001e1e40  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_ZN8dmEngine6LaunchEiPPcPFvPNS_6EngineEPvES6_S4_+144)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #16 pc 001ddbb0  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_Z11engine_mainiPPc+112)
05-03 12:20:28.925  5525  5525 F DEBUG   :     #17 pc 0007c884  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (main+24)
05-03 12:20:28.926  5525  5525 F DEBUG   :     #18 pc 0037ca20  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (_glfwPreMain+248)
05-03 12:20:28.926  5525  5525 F DEBUG   :     #19 pc 0007c8ac  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (android_main+20)
05-03 12:20:28.926  5525  5525 F DEBUG   :     #20 pc 0037d2f8  /data/app/com.emarkk.mapped--ScFhDsdqQ6FHTs3TzNs3g==/lib/arm/libMapped.so (android_app_entry+176)
05-03 12:20:28.926  5525  5525 F DEBUG   :     #21 pc 00048c9f  /system/lib/libc.so (_ZL15__pthread_startPv+22)
05-03 12:20:28.926  5525  5525 F DEBUG   :     #22 pc 0001b09f  /system/lib/libc.so (__start_thread+32)

another homie?
yep, another gd chinese.

Hm. I don’t see anything that relates to the extension in the log… @sven @Mathias_Westerdahl maybe you guys can spot anything?

On my device the extension works fine, can you try another device?

On another phone I get this:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Build fingerprint: 'Xiaomi/rosy/rosy:7.1.2/N2G47H/V9.5.14.0.NDAMIFD:user/release-keys'

Revision: '0'

ABI: 'arm'

pid: 6063, tid: 6116, name: Chrome_IOThread  &gt;&gt;&gt; com.emarkk.mapped &lt;&lt;&lt;

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0

Abort message: 'Could not remove fd from looper: 0'

    r0 00000000  r1 43569f6c  r2 00000008  r3 435485c8

    r4 93b132bc  r5 00000002  r6 00000000  r7 c23c7980

    r8 00000000  r9 00000001  sl 00000000  fp 00000000

    ip bd975568  sp bd975570  lr 00000008  pc d4c13e58  cpsr 400b0030

backtrace:

    #00 pc 0081fe58  /data/app/com.android.chrome-2/base.apk (offset 0x4c29000)

    #01 pc 00000004  &lt;unknown&gt;

If I remove the admob init code, everything works fine on both phones.

That doesn’t sound like a Defold app. Chrome_IOThread, com.android.chrome-2 is it a crash of the Chrome browser?

1 Like

I haven’t seen this type of callstack before.
_glfwAndroidSetInputMethod calls AttachCurrentThread then an internal function to set a flag (hidde input), then it detaches the thread again. But for some reason the app crashes on the DetachCurrentThread call.

Unfortunately, I don’t have any idea what could cause this.
Are you using other native extensions?
Have you ruled out the others? Does it work when using no extensions at all?

EXTENSION UPDATE

Now that Defold supports AndroidManifest.xml merging and because of outdated manifest in the repo, I’ve updated the plugin enabling this AndroidManifest.xml merging. That means you don’t have to manually edit it.

AppManifest file has been moved into the extension, now you can select it in game.project once the plugin is fetched. That would be /admob/ext.appmanifest.

It was also updated for 64-bit support for Android.

7 Likes

Also I’ve noticed that you removed “opps … copy the admob directory into your project” section from description to make Android build. So, now extension builds ok as dependencies. Is it correct?

UPD. Another day, another question. For now the final AndroidManifest.xml contents android:minSdkVersion="9" but extension needs for minimum 14 version. @Mathias_Westerdahl how to modifed AndroidManifest.xml in AdMob extension to correct merging this thing?

seems to need copy builtins manifest and set minSdk to 14 as say in description for https://github.com/defold/extension-firebase-analytics

Yes, in afraid that’s what needs to be done. Maybe we could have min and target sdk as values in game. project.

3 Likes