Italian inserire google maps in una app

abcroverix

Member
Licensed User
Longtime User
Ciao a tutti,
sto cercando di integrare nella mia app google maps.
Utilizzo b4a v3.50
Ho seguito il tutorial su Google maps v2

Ho installato l'sdk per i google play servirces
e copiato in una cartella la ExtraLibs in b4a, il file google-play-services.jar (specificandone il path in Additonal Libraries)

Nel manifest ho inserito questi parametri:

AddManifestText( <permission
android:name="$PACKAGE$.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)
AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyC0DS-QVsL-_5-H1LijWp-EiEFTIpe9Ujw"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@Integer/google_play_services_version"
/>)

AddPermission(android.permission.INTERNET)
AddPermission(android.permission.ACCESS_NETWORK_STATE)
AddPermission(com.google.android.providers.gsf.permission.READ_GSERVICES)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)

Ma alla compilazione mi da questo errore:

Parsing code. Error
Error parsing program.
Error description: Error parsing attribute: #AdditionalRes C:\Program Files\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
Occurred on line: 8
#AdditionalRes C:\Program Files\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms

Cosa sbaglio?
Qualcuno può darmi gentilmente un aiuto?
Grazie
 

abcroverix

Member
Licensed User
Longtime User
Grazie Mamo per il link al manuale.
Ho ricontrollato tutti i passaggi che hai descritto, ma no mi da sempre lo stesso errore di compilazione.

Avevo provato ad utilizzare anche il secondo metodo (parametri diversi nel manifest, presi dalla guida di Erel), si compilava, ma avviando l'app, crashava.

Cosa posso controllare?
Grazie

Ciao Fabio
 

abcroverix

Member
Licensed User
Longtime User
Infatti dopo aver guardato il tuo manuale ho ripulito e fatto copia e incolla del tuo manifest.
Cmq mi da errore in compilazione nell'additionalres

#Region Project Attributes
#ApplicationLabel: GMaps
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#AdditionalRes C:\Program Files\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms

#End Region
 

udg

Expert
Licensed User
Longtime User
Possibile che il problema sia lo spazio in "Program Files" ? Prova ad inserire tutta la stringa tra virgolette, tipo
B4X:
#AdditionalRes "C:\Program Files\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res", com.google.android.gms
 

abcroverix

Member
Licensed User
Longtime User
Purtroppo anche inserendo le librerie nella libreria principale o la stringa tra virgolette come suggerito da udg mi da sempre lo stesso errore.
Sia in debug mode che in release.
 

fabio55

Member
Licensed User
Longtime User
Ho un programma che funziona con google maps. Ho seguito le istruzioni del tutorial.
Io ho questo statement, e l'unica differenza con il tuo è lo spazio in "Program file". Forse potresti reinstallare android in apposita cartella...
#AdditionalRes: C:\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
Per quanto riguarda il manifesto io ho soltanto questo per quanto riguarda le mappe:

AddManifestText( <permission
android:name="$PACKAGE$.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)
AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXX"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@Integer/google_play_services_version"
/>)
AddPermission(android.permission.ACCESS_NETWORK_STATE)

Naturalmente XXXXX è la chiave ottenuta da google.
Io ho la versione BA 4.0

Spero questo ti aiuti.
 
Last edited:

udg

Expert
Licensed User
Longtime User
Nelle istruzioni di installazione di B4A in effetti si legge:
Install Android SDK
  • Download Android SDK.
  • Install the SDK. The SDK doesn't work properly when it is installed in a path with spaces (like "Program Files").>
    It is recommended to install it to a custom folder similar to C:\Android
    .
  • Install the platform-tools, build-tools and at least one platform image (see the image below). Use API 14 or above.
  • .....
 

abcroverix

Member
Licensed User
Longtime User
Ciao, ho disinstallato l'sdk e reinstallato nella cartella di default proposta dal setup e l'errore è sempre lo stesso:

Parsing code. Error
Error parsing program.
Error description: Error parsing attribute: #AdditionalRes C:\Users\Fabio\AppData\Local\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
Occurred on line: 8
#AdditionalRes C:\Users\Fabio\AppData\Local\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
 

fabio55

Member
Licensed User
Longtime User
ma esiste la cartella sdk sotto Android?
Invece di:
C:\Users\Fabio\AppData\Local\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
penso
C:\Users\Fabio\AppData\Local\Android\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms

Se non funziona prova installare l'Android sdk in c:\Android
facci sapere...
 

abcroverix

Member
Licensed User
Longtime User
Aggiornamento: seguendo il manuale di Maxware, ho notato che non c'è la riga di #AdditionalRes e l'ho tolta.
La compilazione va a buon fine, ma nel nexus 7 con android 5.0.2 mi crasha subito e nel log dice che non trova la definizione di una classe

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/GooglePlayServicesUtil;
at anywheresoftware.b4a.objects.MapFragmentWrapper.IsGooglePlayServicesAvailable(MapFragmentWrapper.java:101)
at b4a.example.main._activity_create(main.java:282)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
at b4a.example.main.afterFirstLayout(main.java:98)
at b4a.example.main.access$100(main.java:16)
at b4a.example.main$WaitForLayout.run(main.java:76)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.GooglePlayServicesUtil" on path: DexPathList[[zip file "/data/app/b4a.example-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)


In un post di Erel in cui spiega come installare i google play services riporta questo:
"Note that the latest version of Google Play Services requires Java 7 (set with Tools - Configure Paths) and requires B4A v3.82+"

Ed io ho la versione del jdk1.7.0_51 ma B4A 3.50. Potrebbe essere questo il motivo dell'errore qui sopra?
 
Top