Android Question third-party advertising (no Admob), B4A V6/New G.play Services

DavideV

Active Member
Licensed User
Longtime User
Hi guys,
due to changes in google play services and with B4A V6.00 i don't know how to correctly integrate ADS from others than Admob.
I added the new google play services base strings in manifest following this thread:
https://www.b4x.com/android/forum/threads/integrating-firebase-services.67692/#content

but wich is the correct google play JAR file to include in
#AdditionalJar: com.google.android.gms: ???

In the (updated) SDK i see:
play-services-ads
play-services-ads-lite

Thanks in advance :)
Davide
 

DavideV

Active Member
Licensed User
Longtime User
Which SDK are you integrating? Do you see any error message?

Hi Erel,
Google play services is 9.0.2 ( version 30 in the android SDK)

i tried this:
#AdditionalJar: com.google.android.gms: play-services-ads-lite

the app compiles without errors and run just fine as before,but i'm not sure if it is correct. i'm using Leadbolt Ads:

Google Advertising ID
As of August 1st 2014, if your App is publishing onto the Google Play Store, our SDK will need to use the new Google Advertising ID. Please refer to the following official documentation from Google on how to add the Google Play Services library to your Android Project.
 
Last edited:
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
The base is:
B4X:
#AdditionalJar: com.google.android.gms:play-services
And also add the base manifest snippet: https://www.b4x.com/android/forum/threads/integrating-firebase-services.67692/#content

Unfortunately using 'play-services' the compile fails:
B4A version: 6.00
Parsing code. (0.16s)
Compiling code. (5.75s)
Compiling layouts code. (0.33s)
Organizing libraries. (58.64s)
Generating R file. Error
E:\B4A projects\Tag App Launcher\Objects\bin\extra\res8\res\values-v23\values-v23.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
E:\B4A projects\Tag App Launcher\Objects\bin\extra\res8\res\values-v23\values-v23.xml:34: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
 
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
You need to use a more recent android.jar (Tools - Configure Paths).

with android.jar from platform V23 i get a different error now:
B4A version: 6.00
Parsing code. (0.22s)
Compiling code. (7.04s)
Compiling layouts code. (0.43s)
Organizing libraries. (69.38s)
Generating R file. (28.12s)
Compiling generated Java code. (18.24s)
Convert byte code - optimized dex. Error
trouble writing output: Too many method references: 71848; max is 65536.
You may try using --multi-dex option.
References by package:
6 android.accessibilityservice
5 android.accounts
32 android.animation
392 android.app
2 android.appwidget
4 android.bluetooth
228 android.content
36 android.content.pm
105 android.content.res
63 android.database
26 android.database.sqlite
215 android.graphics
111 android.graphics.drawable
2 android.graphics.drawable.shapes
3 android.graphics.pdf
37 android.hardware
6 android.hardware.display
11 android.hardware.fingerprint
9 android.location
170 android.media
18 android.media.browse
91 android.media.session
63 android.net
3 android.net.http
.....

the list was too long , i removed some items but i think the relevant error is:

trouble writing output: Too many method references: 71848; max is 65536.
 
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
This is what i'm doing:
B4X:
#if Playstore
    #AdditionalJar: com.google.android.gms:play-services
#end if

Here is the full error list

B4A version: 6.00
Parsing code. (0.15s)
Compiling code. (6.20s)
Compiling layouts code. (0.53s)
Organizing libraries. (71.94s)
Generating R file. (27.39s)
Compiling generated Java code. (18.74s)
Convert byte code - optimized dex. Error
trouble writing output: Too many method references: 71848; max is 65536.
You may try using --multi-dex option.
References by package:
6 android.accessibilityservice
5 android.accounts
32 android.animation
392 android.app
2 android.appwidget
4 android.bluetooth
228 android.content
36 android.content.pm
105 android.content.res
63 android.database
26 android.database.sqlite
215 android.graphics
111 android.graphics.drawable
2 android.graphics.drawable.shapes
3 android.graphics.pdf
37 android.hardware
6 android.hardware.display
11 android.hardware.fingerprint
9 android.location
170 android.media
18 android.media.browse
91 android.media.session
63 android.net
3 android.net.http
4 android.net.wifi
11 android.nfc
3 android.nfc.tech
28 android.opengl
266 android.os
20 android.preference
27 android.print
5 android.print.pdf
15 android.provider
8 android.renderscript
2 android.security
10 android.service.media
6 android.speech.tts
23 android.support.annotation
7 android.support.customtabs
302 android.support.graphics.drawable
1 android.support.graphics.drawable.animated
1 android.support.v4
41 android.support.v4.accessibilityservice
62 android.support.v4.animation
1741 android.support.v4.app
282 android.support.v4.content
1 android.support.v4.content.pm
56 android.support.v4.content.res
3 android.support.v4.database
55 android.support.v4.graphics
261 android.support.v4.graphics.drawable
19 android.support.v4.hardware.display
66 android.support.v4.hardware.fingerprint
74 android.support.v4.internal.view
661 android.support.v4.media
886 android.support.v4.media.session
96 android.support.v4.net
76 android.support.v4.os
97 android.support.v4.print
96 android.support.v4.provider
14 android.support.v4.speech.tts
103 android.support.v4.text
284 android.support.v4.util
1892 android.support.v4.view
1161 android.support.v4.view.accessibility
29 android.support.v4.view.animation
1449 android.support.v4.widget
1397 android.support.v7.app
17 android.support.v7.appcompat
26 android.support.v7.content.res
147 android.support.v7.graphics
69 android.support.v7.graphics.drawable
784 android.support.v7.media
17 android.support.v7.mediarouter
1 android.support.v7.palette
3 android.support.v7.text
2 android.support.v7.transition
157 android.support.v7.view
688 android.support.v7.view.menu
2330 android.support.v7.widget
17 android.telephony
37 android.text
8 android.text.format
4 android.text.method
3 android.text.style
17 android.transition
67 android.util
677 android.view
221 android.view.accessibility
60 android.view.animation
2 android.view.inputmethod
100 android.webkit
731 android.widget
201 anywheresoftware.b4a
191 anywheresoftware.b4a.agraham.dialogs
66 anywheresoftware.b4a.agraham.reflection
1 anywheresoftware.b4a.debug
241 anywheresoftware.b4a.keywords
10 anywheresoftware.b4a.keywords.constants
1006 anywheresoftware.b4a.objects
89 anywheresoftware.b4a.objects.collections
97 anywheresoftware.b4a.objects.drawable
67 anywheresoftware.b4a.objects.streams
248 anywheresoftware.b4a.phone
148 anywheresoftware.b4a.randomaccessfile
48 anywheresoftware.b4a.samples.httputils2
47 anywheresoftware.b4a.sql
66 anywheresoftware.b4h.okhttp
26 anywheresoftware.b4j.object
2 com.apptracker.android
86 com.apptracker.android.advert
21 com.apptracker.android.listener
362 com.apptracker.android.module
45 com.apptracker.android.nativead
30 com.apptracker.android.re
67 com.apptracker.android.request
102 com.apptracker.android.track
80 com.apptracker.android.util
26 com.apptracker.b4a.android
31 com.google.ads
65 com.google.ads.afma.nano
108 com.google.ads.mediation
2 com.google.ads.mediation.admob
41 com.google.ads.mediation.customevent
16 com.google.android.gms
4 com.google.android.gms.actions
207 com.google.android.gms.ads
90 com.google.android.gms.ads.doubleclick
101 com.google.android.gms.ads.formats
23 com.google.android.gms.ads.identifier
524 com.google.android.gms.ads.internal
713 com.google.android.gms.ads.internal.client
147 com.google.android.gms.ads.internal.formats
315 com.google.android.gms.ads.internal.overlay
97 com.google.android.gms.ads.internal.purchase
198 com.google.android.gms.ads.internal.request
131 com.google.android.gms.ads.internal.reward.client
65 com.google.android.gms.ads.internal.reward.mediation.client
50 com.google.android.gms.ads.internal.util.client
93 com.google.android.gms.ads.mediation
2 com.google.android.gms.ads.mediation.admob
63 com.google.android.gms.ads.mediation.customevent
16 com.google.android.gms.ads.purchase
22 com.google.android.gms.ads.reward
14 com.google.android.gms.ads.reward.mediation
136 com.google.android.gms.ads.search
378 com.google.android.gms.analytics
37 com.google.android.gms.analytics.ecommerce
756 com.google.android.gms.analytics.internal
131 com.google.android.gms.appdatasearch
77 com.google.android.gms.appindexing
67 com.google.android.gms.appinvite
121 com.google.android.gms.auth
20 com.google.android.gms.auth.api
151 com.google.android.gms.auth.api.credentials
120 com.google.android.gms.auth.api.credentials.internal
43 com.google.android.gms.auth.api.proxy
101 com.google.android.gms.auth.api.signin
152 com.google.android.gms.auth.api.signin.internal
16 com.google.android.gms.base
739 com.google.android.gms.cast
55 com.google.android.gms.cast.games
308 com.google.android.gms.cast.internal
50 com.google.android.gms.clearcut
200 com.google.android.gms.common
257 com.google.android.gms.common.api
150 com.google.android.gms.common.data
106 com.google.android.gms.common.images
621 com.google.android.gms.common.internal
84 com.google.android.gms.common.internal.safeparcel
9 com.google.android.gms.common.server
42 com.google.android.gms.common.server.converter
117 com.google.android.gms.common.server.response
90 com.google.android.gms.common.stats
117 com.google.android.gms.common.util
135 com.google.android.gms.config.internal
333 com.google.android.gms.drive
168 com.google.android.gms.drive.events
25 com.google.android.gms.drive.events.internal
1119 com.google.android.gms.drive.internal
41 com.google.android.gms.drive.metadata
175 com.google.android.gms.drive.metadata.internal
83 com.google.android.gms.drive.query
171 com.google.android.gms.drive.query.internal
333 com.google.android.gms.drive.realtime.internal
99 com.google.android.gms.drive.realtime.internal.event
18 com.google.android.gms.drive.widget
213 com.google.android.gms.dynamic
1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.ads.dynamite
1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.firebase_database
1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags
1 com.google.android.gms.dynamite.descriptors.com.google.android.gms.tagmanager
57 com.google.android.gms.fitness
491 com.google.android.gms.fitness.data
34 com.google.android.gms.fitness.internal.service
746 com.google.android.gms.fitness.request
211 com.google.android.gms.fitness.result
41 com.google.android.gms.fitness.service
27 com.google.android.gms.flags.impl
408 com.google.android.gms.games
112 com.google.android.gms.games.achievement
337 com.google.android.gms.games.appcontent
76 com.google.android.gms.games.event
1900 com.google.android.gms.games.internal
782 com.google.android.gms.games.internal.api
33 com.google.android.gms.games.internal.constants
2 com.google.android.gms.games.internal.data
12 com.google.android.gms.games.internal.events
69 com.google.android.gms.games.internal.experience
74 com.google.android.gms.games.internal.game
25 com.google.android.gms.games.internal.multiplayer
17 com.google.android.gms.games.internal.notification
105 com.google.android.gms.games.internal.player
39 com.google.android.gms.games.internal.request
215 com.google.android.gms.games.leaderboard
184 com.google.android.gms.games.multiplayer
169 com.google.android.gms.games.multiplayer.realtime
191 com.google.android.gms.games.multiplayer.turnbased
171 com.google.android.gms.games.quest
97 com.google.android.gms.games.request
187 com.google.android.gms.games.snapshot
54 com.google.android.gms.games.social
72 com.google.android.gms.games.stats
114 com.google.android.gms.games.video
232 com.google.android.gms.gcm
32 com.google.android.gms.identity.intents
39 com.google.android.gms.identity.intents.model
116 com.google.android.gms.iid
12032 com.google.android.gms.internal
319 com.google.android.gms.location
393 com.google.android.gms.location.internal
287 com.google.android.gms.location.places
417 com.google.android.gms.location.places.internal
72 com.google.android.gms.location.places.personalized
60 com.google.android.gms.location.places.ui
604 com.google.android.gms.maps
880 com.google.android.gms.maps.internal
526 com.google.android.gms.maps.model
464 com.google.android.gms.maps.model.internal
43 com.google.android.gms.measurement
1113 com.google.android.gms.measurement.internal
2 com.google.android.gms.nearby
16 com.google.android.gms.nearby.bootstrap
102 com.google.android.gms.nearby.bootstrap.request
91 com.google.android.gms.nearby.connection
457 com.google.android.gms.nearby.internal.connection
126 com.google.android.gms.nearby.messages
70 com.google.android.gms.nearby.messages.devices
388 com.google.android.gms.nearby.messages.internal
8 com.google.android.gms.panorama
34 com.google.android.gms.phenotype
73 com.google.android.gms.playlog.internal
107 com.google.android.gms.plus
203 com.google.android.gms.plus.internal
360 com.google.android.gms.plus.internal.model.people
120 com.google.android.gms.plus.model.people
32 com.google.android.gms.safetynet
22 com.google.android.gms.search
13 com.google.android.gms.security
139 com.google.android.gms.signin.internal
1061 com.google.android.gms.tagmanager
16 com.google.android.gms.tagmanager.impl
129 com.google.android.gms.tasks
148 com.google.android.gms.vision
140 com.google.android.gms.vision.barcode
37 com.google.android.gms.vision.barcode.internal.client
37 com.google.android.gms.vision.face
58 com.google.android.gms.vision.face.internal.client
11 com.google.android.gms.vision.internal.client
47 com.google.android.gms.vision.text
82 com.google.android.gms.vision.text.internal.client
417 com.google.android.gms.wallet
54 com.google.android.gms.wallet.firstparty
252 com.google.android.gms.wallet.fragment
105 com.google.android.gms.wallet.wobs
306 com.google.android.gms.wearable
1224 com.google.android.gms.wearable.internal
61 com.google.firebase
11 com.google.firebase.analytics
32 com.google.firebase.appindexing.internal
142 com.google.firebase.auth
126 com.google.firebase.auth.api.model
33 com.google.firebase.crash
73 com.google.firebase.crash.internal
3 com.google.firebase.crash.internal.config.flag
12 com.google.firebase.crash.internal.service
247 com.google.firebase.database
261 com.google.firebase.database.connection.idl
143 com.google.firebase.iid
95 com.google.firebase.messaging
10 com.google.firebase.provider
61 com.google.firebase.remoteconfig
356 com.google.firebase.storage
37 com.rootsoft.togglelibrary
666 com.squareup.okhttp
212 com.squareup.okhttp.internal
260 com.squareup.okhttp.internal.http
18 com.squareup.okhttp.internal.io
412 com.squareup.okhttp.internal.spdy
19 com.squareup.okhttp.internal.tls
2 dalvik.system
113 de.amberhome.locale
6 default
18 it.davidev.libs.aboutdavidev
14 it.davidev.libs.scrollingtext
709 it.davidev.tagapplauncher
26 it.davidev.tagapplauncher.designerscripts
52 it.hyperfrancy.hidemynumber
198 java.io
440 java.lang
6 java.lang.ref
49 java.lang.reflect
13 java.math
128 java.net
63 java.nio
16 java.nio.channels
12 java.nio.charset
2 java.nio.file
34 java.security
9 java.security.cert
2 java.security.spec
3 java.sql
63 java.text
380 java.util
113 java.util.concurrent
27 java.util.concurrent.atomic
13 java.util.concurrent.locks
5 java.util.logging
19 java.util.regex
44 java.util.zip
12 javax.crypto
3 javax.crypto.spec
12 javax.microedition.khronos.egl
3 javax.net
26 javax.net.ssl
3 javax.security.auth.x500
487 okio
10 org.apache.http
1 org.apache.http.client
14 org.apache.http.client.methods
6 org.apache.http.entity
2 org.apache.http.impl.cookie
5 org.apache.http.message
2 org.apache.http.params
68 org.json
14 org.xmlpull.v1
 
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
My mistake. Remove the #AdditionalJar and compile your app. Do you get any error message?

Yes i get this error now:

B4A version: 6.00
Parsing code. (0.53s)
Compiling code. (2.84s)
Compiling layouts code. (0.66s)
Organizing libraries. (0.11s)
Generating R file. Error
AndroidManifest.xml:42: error: Error: No resource found that matches the given name (at 'value' with value '@Integer/google_play_services_version').
 
Upvote 0

DavideV

Active Member
Licensed User
Longtime User
The best way to find it is in the third party SDK instructions. Otherwise we need to guess which features they need.

You can try it with:
B4X:
#AdditionalJar: com.google.android.gms:play-services-base

Thanks Erel,
after further searches i see that, with your string, my decompiled app contains the required class for retrieving advertising ID and limits using play services (as requested from Google).
Looking into the Leadbolt SDK using JDGUI i can't find anything related to calls to these Play services methods/class import (such as retrieving the advertising ID and limits) so it should work with or without play services.
i'll ask them clarifications
 
Upvote 0
Top