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.

¿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> 

¿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.

  • play-services-base versus -basement dependances (AAR) en Android
  • No se puede encontrar la clase del jar del proyecto de la biblioteca cuando maven construye mi proyecto
  • Maven y android - Creaciones ligeramente diferentes para diferentes entornos
  • ¿Hay una sobrecarga para escribir una biblioteca en Kotlin para Android?
  • Android: Nombre del archivo final de Maven
  • Gradle Sube la aplicación android apk a maven repo (nexus)
  • ¿Cómo publicar los apks en el Maven Central con gradle?
  • ¿Por qué no puedo importar el SDK de Facebook correctamente?
  • ¿Cómo puedo crear un apklib para un proyecto no maven
  • No se puede crear una aplicación cuando se usa gradle (Android Studio) y local maven repo
  • Importar biblioteca en Eclipse sin jar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.