Translate

lunes, 7 de abril de 2014

Hacer que funcionen el plugin de admob y de google play games en Unity3D


Introducción


Desde que Google hizo que su nueva librería para unity tuviera incluido el soporte admob, el plugin de admob( de hecho todos los plugins de admob, gratuitos y de paga, pero yo me referiré al gratuito ) comenzó a marcar errores y no se podía compilar. Hoy les traigo una solución, que aunque es un poco burda, les aseguro que funciona a la perfección.

Descripción del error


Al momento de darle en Build nos aparece el mesaje de diálogo



y un error en la consola que dice algo así como:

Error building Player: CommandInvokationFailure: Unable to convert classes into dex format.

See the Console for details.
C:\Program Files (x86)\Java\jdk1.7.0_51\bin\java.exe -Xmx1024M -

Dcom.android.sdkmanager.toolsdir="C:/Program Files (x86)/Android/android-sdk-windows\tools"

-Dfile.encoding=UTF8 -jar "C:/Program Files

(x86)/Unity/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" -

stderr[

UNEXPECTED TOP-

LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: ...

Explicación del problema


Como algunos desarrolladores de android sabrán, al agregar librerías con clases con el mismo nombre duplicado es lo que genra este error, simplemente, algunas clases ya estaban incluidas en el plugin de admob.

Solución


La solución es simple, borrar los archivos duplicados. Es recomendable conservar una copia de los jar originales, pero como para este caso Java se encarga de hacer un nuevo jar no afectará el proyecto. En este caso borraremos los archivos del google play games.

Archivos a borrar


Para ahorrar tiempo diré que se debe eliminar toda la carpeta
  • google-play-services.jar\com\google\ads\mediation\customevent
y los archivos:

  • com/google/ads/AdRequest$ErrorCode
  • com/google/ads/AdSize 
  • com/google/ads/AdRequest 
  • com/google/ads/mediation/MediationInterstitialListener 
  • com/google/ads/mediation/MediationServerParameters
  •  com/google/ads/mediation/MediationBannerAdapter
  • com/google/ads/mediation/MediationAdRequest
  • com/google/ads/mediation/MediationInterstitialAdapter
  • com/google/ads/mediation/MediationAdapter 
  • com/google/ads/mediation/NetworkExtras
  • com/google/ads/mediation/EmptyNetworkExtras 
  • com/google/ads/mediation/MediationServerParameters$Parameter
  • com/google/ads/mediation/MediationServerParameters$MappingException
  • com/google/ads/mediation/admob/AdMobAdapter 
  • com/google/ads/mediation/admob/AdMobAdapter$a
  • com/google/ads/mediation/admob/AdMobAdapter$b
  • com/google/ads/mediation/MediationBannerListener 
  • com/google/ads/AdRequest$Gender

Pero.. me da flojera hacer todo eso

No te preocupes, con dinero se arregla casi todo :P
Puedes descargar el jar modificado totalmente gratis mediante el siguiente link patrocinado: Enlace de descarga
Una vez puesto tu id de app y presionado el botón enl pestaña de configuración de android para GPGS remplaza el archivo que se debe encontrar en Assets/Plugins/google-play-services_lib/libs

No hay comentarios:

Publicar un comentario