Google Maps Android v2 no funciona con ActionBarSherlock Fragment Actividad
He seguido los pasos de Uso de ActionBarSherlock Con el Nuevo SupportMapFragment para usar la nueva API de Google Maps para Android v2, pero estoy recibiendo algunos errores que están causando que la aplicación se bloquee al inicio.
Estoy utilizando Maven en mi aplicación, por lo que estoy publicando mi AndroidManifest y POM archivos también.
- ¿Cómo configurar la dependencia de Maven para Guice 3.0 para uso sin AOP?
- Cómo convertir mi proyecto de Android en un proyecto de maven
- Problemas para generar Google App Engine Backend en Android Studio
- Evitar que la dependencia de Gradle para la biblioteca de soporte sea reemplazada por una versión más reciente
- Invalid LOC header Error de compilación de Maven para Android support-v4
¿Puedes ayudarme por favor?
Aquí está el error de logcat:
12-22 14: 35: 41.319: ERROR / AndroidRuntime (8565): EXCEPCIÓN FATAL: principal java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable en com.google.android.gms.maps.GoogleMapOptions. CreateFromAttributes (fuente desconocida) en com.google.android.gms.maps.SupportMapFragment.onInflate (origen desconocido) en android.support.v4.app.FragmentActivity.onCreateView (FragmentActivity.java:269) en android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:563) en android.view.LayoutInflater.rInflate (LayoutInflater.java:623) en android.view.LayoutInflater.inflate (LayoutInflater.java:408) en android.view.LayoutInflater.inflate (LayoutInflater.java: 320) en android.view.LayoutInflater.inflate (LayoutInflater.java:276) en com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView (ActionBarSherlockCompat.java:853) en com.actionbarsherlock.app.SherlockFragmentActivity.setContentView (SherlockFragmentActivity.java:262 ) En br.com.myapp.activities.MainActivity.onCreate (MainActivity.java:19) en y Roid.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) en android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1615) en android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1667) en android.app.ActivityThread .access $ 1500 (ActivityThread.java:117) en android.app.ActivityThread $ H.handleMessage (ActivityThread.java:935) en android.os.Handler.dispatchMessage (Handler.java:99) en android.os.Looper.loop (Looper.java:130) en android.app.ActivityThread.main (ActivityThread.java:3687) en java.lang.reflect.Method.invokeNative (Método nativo) en java.lang.reflect.Method.invoke (Method.java : 507) en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:867) en com.android.internal.os.ZygoteInit.main (ZygoteInit.java:625) en dalvik.system.NativeStart. Principal (método nativo)
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.myapp" android:versionCode="1" android:versionName="2.0.0"> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"></uses-sdk> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <permission android:name="br.com.myapp.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="br.com.myapp.permission.MAPS_RECEIVE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <application android:label="@string/app_name" android:icon="@drawable/rp_icon" android:logo="@drawable/logo_actionbar" android:theme="@style/Theme.Sherlock.Light.DarkActionBar"> <uses-library android:name="com.google.android.maps" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MyKeyXXXXXXXXXXXXXXXXXXXXXXXXX" /> <activity android:name=".activities.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
POM.xml:
<?xml version="1.0" encoding="UTF-8"?>
Http://maven.apache.org/maven-v4_0_0.xsd "> 4.0.0 br.com.myapp myapp-android 2.0.0 apk myapp
<properties> <platform.version>4.2 </platform.version> </properties> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>com.loopj.android.http</groupId> <artifactId>async-http-client</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>support-v4</artifactId> <version>r7</version> </dependency> <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>actionbarsherlock</artifactId> <version>4.2.0</version> <type>apklib</type> </dependency> <dependency> <groupId>com.google.android.gms</groupId> <artifactId>google-play-services</artifactId> <version>4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.1.1</version> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>10</platform> </sdk> <undeployBeforeDeploy>true</undeployBeforeDeploy> </configuration> <extensions>true</extensions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build>
- Adición de dependencias de Maven a Gradle en Android Studio
- Maven archétype para un proyecto android
- Dependencia de la biblioteca de Android Gradle con la dependencia de la biblioteca mediante Nexus
- Gradle no puede resolver dependencias en Android Studio
- ¿Cómo subir el módulo a JCenter usando el plugin de binario de gradle?
- Cómo utilizar maven en el estudio android
- Prueba de instrumentación androide: IllegalAccessError
- ¿Cómo resuelvo estos errores internos de Maven?
¿Incluiste el origen completo de la biblioteca de Google Maps? Hay recursos allí (de ahí la referencia a java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable en com.google.android.gms.maps.GoogleMapOptions.createFromAttributes (fuente desconocida)).
No basta con hacer referencia al archivo google-play-services.jar. Compruebe el archivo README.txt en la raíz del proyecto Servicios de Google Play.
Encontré el mismo problema en mi proyecto.
La solución es añadir 2 dependencias para com.google.android.gms tanto apklib como jar a maven build script:
<!-- google-play-services. --> <dependency> <groupId>com.google.android.gms</groupId> <artifactId>google-play-services</artifactId> <version>4</version> <type>apklib</type> </dependency> <dependency> <groupId>com.google.android.gms</groupId> <artifactId>google-play-services</artifactId> <version>4</version> <type>jar</type> </dependency>
Además, la dependencia com.google.android.maps no es necesaria para los mapas v2.
- Uso del generador de estilo Action bar con generador de colores holo
- Inyectar audio de enlace ascendente en llamada con Snapdragon MSM8960 SoC