Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 14/04/16, 10:37:11
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Ya he llegado... 64k

Pues eso, ya he llegado a lo que nunca creí que llegaría, el famoso límite de 64k. Y todo ha sido por actualizar las librerías de Google de la 23.1.0 a las 23.3.0, estaba claro que con tantas librerías de soporte necesarias para hacer un proyecto hoy en día llegaría tarde o temprano, a eso súmale las librerías que no son de Google que también uso.

Ya he añadido la librería de soporte de MultiDex (otra mas), activado el MultiDex y subido la versión mínima a 14 (ya iba siendo hora... aún hacia compatibles con 9). Ahora tocará probar la app y ver que ocurre, porque en la página de Google te meten un miedo que flipas de todos los problemas que puede traer el MultiDex.

Alguno que haya activado el MultiDex en un proyecto, ¿notáis que tarde más en iniciarse? ¿Ocurre sólo la primera vez? ¿Os da problemas?

EDITO: He estado haciendo pruebas con el emulador, y no sólo creo que tarde más, sino que hasta parece que va más rápido. El emulador es Kit Kat, que se supone que tiene peor soporte de MultiDex que los dispositivos Lollipop en adelante. Parece que no era tan traumática la cosa, si lo llego a saber lo hago antes.

Ahora voy a probar a hacer un ProGuard, a ver si así explota o no.

Saludos ;)

Última edición por kriogeN Día 14/04/16 a las 10:45:00
Responder Con Cita


  #2  
Viejo 14/04/16, 10:46:59
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Ya te iba a felicitar por el aumento de salario, 64K no está nada mal, ahora a por los 100K DDD

No he tenido el gusto, aunque también he tenido que subir la versión mínima del cuatro en raya de Android 1.6 a Android 2.0.1 (wow jaja) porque la biblioteca de soporte v4 aunque ponen que es compatible con API 4 lo cierto es que ya no lo es. Y sí, ¡tengo usuarios con Android 2.1 todavía!
Responder Con Cita
  #3  
Viejo 14/04/16, 10:56:39
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Ya te iba a felicitar por el aumento de salario, 64K no está nada mal, ahora a por los 100K DDD

No he tenido el gusto, aunque también he tenido que subir la versión mínima del cuatro en raya de Android 1.6 a Android 2.0.1 (wow jaja) porque la biblioteca de soporte v4 aunque ponen que es compatible con API 4 lo cierto es que ya no lo es. Y sí, ¡tengo usuarios con Android 2.1 todavía!
A esos usuarios deberías darles un logro o algo DD

Y si, hay muchas cosas en la v4 que realmente son "compat" (también en la v7, pero menos), que lo que significa es "esto no existe, pero te lo pongo para que compile, luego tu ya comprueba si devuelve NULL que significa que no puedes usarlo en tu versión".

Por ejemplo, hay un SearchViewCompat en v4 que si lo usas en una versión inferior a 14 siempre da NULL, y luego en la v7 hay un SearchView que si que funciona de verdad.

Por cierto, acabo de probar la versión con ProGuard y también funciona de lujo, sin añadir nada a la configuración de exclusiones.

Así que nada, un miedo perdido, si por necesidad tenéis que usar MultiDex en las pruebas que he hecho funciona de lujo.
Responder Con Cita
  #4  
Viejo 14/04/16, 11:09:04
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Genial, gracias por compartir la al final no tan traumática experiencia.

Los usuarios con Android 2.1 tienen premio porque no ven publicidad, Admob no soporta esa versión ya . Pero con lo que me refería a que ya no es compatible con API 4 es que directamente da errores VerifyError y básicamente han dicho en el tracker que no se van a molestar demasiado en arreglarlos. Normal por otro lado...
Responder Con Cita
  #5  
Viejo 29/06/16, 12:49:57
Avatar de manolazo
manolazo manolazo no está en línea
Miembro del foro
Mensajes: 219
 
Fecha de registro: jun 2012
Localización: Madrid
Mensajes: 219
Modelo de smartphone: Samsung Galaxy S7 edge
Tu operador: Pepephone
Mencionado: 1 comentarios
Tagged: 0 hilos
Buenas, hablando de los 64k:

Estoy intentando firmar una app para subirla al market y lo que antes no me pasaba ahora me pasa y no se por qué. Segun el log tambien he llegado a los 64k pero me resulta bastante raro.

Estos son los dos errores que me aparecen:

Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/.../multidex.html

Error:Execution failed for task ':proyectolocalizacion:transformClassesWithDexForR elease'.
> com.android.build.api.transform.TransformException : com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_66\bin\java.exe'' finished with non-zero exit value 2

Y este es el build gradle:

Cita:
apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId 'com.jrodri.loecto'
minSdkVersion 15
targetSdkVersion 18
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
//Si usamos api 23, hay que importar la libreria de apacha para las clases DefaultHttpClient ya que estan deprecadas
//en esta api. Habria que cambiarlas por otras librerias. Mas info:
//http://developer.android.com/intl/es/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client
useLibrary 'org.apache.http.legacy'
productFlavors {
}
dexOptions {
javaMaxHeapSize "3g"
}
}

dependencies {
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.android.support:support-v4:24.0.0-beta1'
compile 'com.android.support:appcompat-v7:24.0.0-beta1'
compile 'com.android.support:design:24.0.0-beta1'
compile 'com.google.android.gms:play-services-maps:9.0.1'
compile 'com.google.android.gms:play-services:9.0.1'
compile 'com.google.android.gms:play-services-ads:9.0.1'
compile 'com.google.android.gms:play-services-identity:8.4.0'
compile 'com.google.android.gms:play-services-gcm:9.0.1'
compile 'com.android.support:percent:23.0.0'
compile 'com.google.android.gms:play-services-auth:9.0.1'
}
Me parece imposible que llegue a 64k referencias ya que no hay tantas librerias, ademas antes si se podia firmar y ahora no.

Hay alguna manera de solucionarlo sin hacer MultiDex o tocar el proguard?
Responder Con Cita
  #6  
Viejo 29/06/16, 17:01:00
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
No, o haces ProGuard para eliminar referencias o haces MultiDex.

De todas formas yo ya tengo 2 app con MultiDex y funciona perfectamente, es algo a lo que se le debe perder el miedo.

Respecto a las librerías, solo con las de Google (Support, Appcompat y GMS) ya es bastante fácil quedarte cerca de las 64k de referencias, hay la tira de cosas ahí.
Responder Con Cita
  #7  
Viejo 29/06/16, 20:56:19
Avatar de manolazo
manolazo manolazo no está en línea
Miembro del foro
Mensajes: 219
 
Fecha de registro: jun 2012
Localización: Madrid
Mensajes: 219
Modelo de smartphone: Samsung Galaxy S7 edge
Tu operador: Pepephone
Mencionado: 1 comentarios
Tagged: 0 hilos
o sea que con las librerias de volley y las necesarias para usar google maps ya se llega practicamente a los 64 k ???
Responder Con Cita
  #8  
Viejo 29/06/16, 21:46:40
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Las Support, Google Play Services y Appcompat han crecido muchísimo, de hecho a mi el aviso me llegó cuando subí de versión la Support y la Google Play Services.
Responder Con Cita
  #9  
Viejo 29/06/16, 23:16:08
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
me llegó cuando subí de versión la Support y la Google Play Services.
Los Play Services desde que los dividieron no duelen tanto (antes eran 22k metodos...).
Las de firebase si que duelen bastante, sobretodo las nuevas.

Al final habilitar el multidex es cuestion de 3 lineas, te acabas acostumbrando

Si os preocupa este limite, os recomiendo esta web, donde pegas el compile de gradle y te dice cuantos metodos tiene:

http://www.methodscount.com
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 18:25:57 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007