Italian errore dopo la sola aggiunta di addmob

LordZenzo

Well-Known Member
Licensed User
B4X:
B4A version: 5.02 (1)
Parsing code.    (0.05s)
Compiling code.    (0.33s)
Compiling layouts code.    (0.00s)
Generating R file.    (1.50s)
Compiling generated Java code.    (4.83s)
Convert byte code - optimized dex.    Error
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at com.android.dx.dex.code.BlockAddresses.setupArrays(BlockAddresses.java:135)
    at com.android.dx.dex.code.BlockAddresses.<init>(BlockAddresses.java:57)
    at com.android.dx.dex.code.RopTranslator.<init>(RopTranslator.java:125)
    at com.android.dx.dex.code.RopTranslator.translate(RopTranslator.java:103)
    at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:319)
    at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
    at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
    at com.android.dx.command.dexer.Main.processClass(Main.java:682)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
    at com.android.dx.command.dexer.Main.access$600(Main.java:78)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:596)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
    at com.android.dx.command.dexer.Main.run(Main.java:230)
    at com.android.dx.command.dexer.Main.main(Main.java:199)
    at com.android.dx.command.Main.main(Main.java:103)

questo errore compare quando cerco di compilare il programma
ho solo spuntato admob tra le librerie
senza neanche usarla
 

LordZenzo

Well-Known Member
Licensed User
ho scoperto che se metto la libreria vecchia di admob, la 1.40 invece della 2, compila ma con questo errore

B4X:
B4A version: 5.02 (1)
Parsing code.    (0.03s)
Compiling code.    (0.19s)
Compiling layouts code.    (0.00s)
Generating R file.    (0.68s)
Compiling generated Java code.    (2.72s)
Convert byte code - optimized dex.    (9.32s)
    Optimized dexer failed. Switching to Standard dexer.
Packaging files.    (2.26s)
Copying libraries resources    (0.00s)
Signing package file (debug key).    (1.73s)
ZipAlign file.    (0.11s)
Installing file to device.    (0.20s)
    Installing with B4A-Bridge.
 

Filippo

Expert
Licensed User
Ciao LordZenzo,

dai una guardata a questo esempio.
 

LordZenzo

Well-Known Member
Licensed User
Ciao LordZenzo,

dai una guardata a questo esempio.
Ok, stasera lo provo, pero per farlo funzionare bisogna che "<ca-app-pub-MIO-CODICE>" sia un codice valido, quindi? Come si crea un codice valido?

Perdona la mia ignoranza :(:(
 

Filippo

Expert
Licensed User
Ok, stasera lo provo, pero per farlo funzionare bisogna che "<ca-app-pub-MIO-CODICE>" sia un codice valido, quindi? Come si crea un codice valido?

Perdona la mia ignoranza :(:(
Leggi questo tutorial.
 

Filippo

Expert
Licensed User
Hai provato il mio esempio? Funziona ? Se funziona allora dovrebbe funzionare anche con la tua APP.
Se non funziona allora manca qualche cosa nel SDK .
 

LordZenzo

Well-Known Member
Licensed User
anche il tuo esempio non mi funziona, appare il pulsantone, ma nessun banner neanche vuoto
ce sto a usci pazzo
non da nessun errore, semplicemente come se fosse codice nullo
non entra neanche negli eventi
Sub Ad_FailedToReceiveAd (ErrorCode As String)
Sub Ad_ReceiveAd
Sub Ad_AdScreenDismissed
 
Last edited:

LordZenzo

Well-Known Member
Licensed User
per la cronaca questo e' il manifest che uso
B4X:
AddManifestText(
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="19"/>
<supports-screens android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />       
)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo")
'End of default text
'AdMob
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.ACCESS_NETWORK_STATE)
AddApplicationText(
<meta-data android:name="com.google.android.gms.version"
  android:value="@integer/google_play_services_version"/>
<activity android:name="com.google.android.gms.ads.AdActivity"
  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

)
'End of AdMob
 

LucaMs

Expert
Licensed User
Per non fai una bella cosa e invece dei banner (che non rendono un tubo) metti gli interstitial, così hai pure un esempio funzionante senza problemi?
 

LucaMs

Expert
Licensed User
Hai messo anche:

#AdditionalRes: C:\Users\nomeutentewindows\AppData\Local\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms

nella Main?
 

LordZenzo

Well-Known Member
Licensed User
Per non fai una bella cosa e invece dei banner (che non rendono un tubo) metti gli interstitial, così hai pure un esempio funzionante senza problemi?
la mia app, ha una sola finestra principale ed una di impostazioni
non credo che gli interstitial vanno bene (se ho capito cosa sono)
 

LucaMs

Expert
Licensed User
Perché no? Aggiungi una activity apposta per la pubblicità (sono pubblicità a tutto schermo, a volte anche video, per le queli vieni cmq pagato, a differenza dei banner, dai quali non becchi una lira se non vengono clickati dall'utente).
 

LordZenzo

Well-Known Member
Licensed User
quindi? dovrei far apparire la pubblicità ogni tot secondi?
la mia app, non e' dinamica, dopo la fase di inserimento dati la si usa solo per vedere i turni di lavoro, per ora
solo a pensarlo mi fa venire voglia di disinstallarla....

e comunque.....non funziona cavollllloooooooooooooo
 

LucaMs

Expert
Licensed User
Se intendi dire che non si connette spesso, allora entrambi i tipi di pubblicità sono inutili; meglio metterla a pagamento, allora (con una versione di prova oppure con funzioni limitate)
 

Filippo

Expert
Licensed User
Io userei solo i Banner!
Gli interstitial vanno bene, secondo me, solo per APP che sono conosciute e la gente le vuole assolutamente.
Per una APP che ancora non la conosce nessuno e si vedono subito gli interstitial, viene solo la voglia di disinstallarla e anche subito.

Io uso solo i Banner e guadagno ogni mese circa 100 Euro, non sono molti ma neanche pochi, almeno recupero le spese.;)
 

LucaMs

Expert
Licensed User
Secondo me, invece (a parte che sono arcistraconvinto che sia INDISPENSABILE fare pubblicità all'app - vedi miei post circa Candy Crush, sia qui su B4X.com che su b4xitaliangroup), dato che sui banner non clicka nessuno, meglio gli interstitial. Puoi sempre aggiungere l'opzione "paga una tantum per eliminarli".
 
Top