Eclipse a Android Studio Import
Estoy moviendo todos mis códigos de fuente a AS como sugerido por el Web site oficial de Androide. Sin embargo, la experiencia no es muy buena. Es muy lento como se describe aquí . Pero este no es mi problema final por ahora.
He resuelto muchos problemas como la actualización de la compileSdkVersion
a 23 para que 99 errores de este tipo:
- Prácticas recomendadas de Eclipse Workspace
- Error de ADT de Android, dx.jar no se cargó desde la carpeta SDK
- ¿Por qué elegiría la API de Android sobre las API de Google en el SDK de Eclipse?
- Android: no se puede importar BaseGameUtils con éxito en Eclipse
- ¿Dónde puedo encontrar versiones anteriores de Eclipse ADT
Error: (13) Error al recuperar el padre del elemento: No se encontró ningún recurso que coincida con el nombre dado 'android: TextAppearance.Material.Inverse'.
Podría ser rectificado. Pero los problemas siguen disparando a medida que voy. Ahora tengo este problema de 64k Dex.
Error: El número de referencias de método en un archivo .dex no puede superar los 64K. Obtenga información sobre cómo resolver este problema en https://developer.android.com/tools/building/multidex.html.
Nunca tuve este problema de Dex
durante el uso de Eclipse. El código fuente que tengo en AS es exactamente el mismo que cuando estaba en Eclipse
. Las únicas diferencias son los cambios gradle necesarios sólo para trabajar en AS. ¿Alguna idea de por qué este repentino problema de Dex
? Si establezco multiDexEnabled
en true
, ¿cuáles son las implicaciones?
- eclipse me dice que mi proyecto tiene errores, nada es rojo-destacado
- Hash de clave de facebook, confusión de keystore android
- Opciones de depuración no disponibles en Eclipse después de reinstalar ADT
- La exportación de APK desde eclipse (ADT) se bloquea de forma silenciosa
- Android - ¿Cómo puedo ver una base de datos SQL creada en mi aplicación? Lo estoy ejecutando en el emulador de Android de Eclipse
- Eclipse depurador para Android dispositivo virtual colgando?
- Intent.putExtra (String, Bundle) vs Intent.putExtra (Bundle)
- ¿Cómo conectarse a un servidor SSH usando JSCH?
Sospecho que su error dex es un resultado del crecimiento de una biblioteca, pero sin más información, esto es difícil de depurar. La versión más reciente de Android Studio (2.2) proporciona una herramienta de analizador APK que hace que el límite dex sea más transparente.
Cuando compile 'com.google.android.gms:play-services-fitness:9.6.1'
API de servicios de Google Play, deberás comprobar que solo estás incluyendo las que se usan con estas directivas. compile 'com.google.android.gms:play-services-fitness:9.6.1'
lugar de incluir todo ( Lista completa ).
Si necesita todas las bibliotecas en las que ya está dependiendo, normalmente se resuelve habilitando multidex en su entorno de desarrollo (requiere desarrollo usando un dispositivo o emulador con L o superior), pero luego usa minificationEnabled en su versión de compilación tal que multidex No es necesario en su versión de APK. Esto resulta en una combinación de compilaciones de depuración rápidas y no multidex de las versiones de lanzamiento para evitar tiempos de inicio lentos para la versión de lanzamiento.
Un poco más de información: cuando se utiliza multidex nativo en compilaciones de depuración (requiere minSdk establecido en L o superior) resulta en incremental más rápido crea porque los módulos y las bibliotecas se implementan como archivos dex separados y menos procesamiento entre implementaciones.
Cuando utiliza minificationEnabled en su versión de compilación, a menudo elimina la necesidad del segundo archivo dex porque los métodos de sus dependendencies que no usa se recortan. Esto típicamente resulta en un solo dex que anula los efectos negativos de multidex (copiando los archivos dex N + 1 en la inicialización de la aplicación para <version L devices).
En primer lugar, asegúrese de reconstruir el proyecto, después de importar (Build – Clean, Builde – Rebuild Probject). Solución de este problema con referencia a los métodos de limitación:
android { defaultConfig { ... // Enabling multidex support. multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.0' }
Y también actualizar Application.class en java para apoyar MultiDex. ¡Vea la información completa aquí !
ACTUALIZAR:
Estas opciones se ignoran en Eclipse, porque el límite de referencias de métodos se puede calcular desde el entorno (como AS en nuestro caso). ¿Por qué estas opciones no se incluyen en la compilación de Gradle?
Los archivos de aplicación de Android (APK) contienen archivos de bytecode ejecutables en forma de archivos de Dalvik Executable (DEX), que contienen el código compilado utilizado para ejecutar la aplicación. La especificación de Dalvik Executable limita el número total de métodos que se pueden hacer referencia dentro de un solo archivo DEX a 65.536, incluidos los métodos de framework de Android, los métodos de biblioteca y los métodos de su propio código. En el contexto de la informática, el término Kilo, K, denota 1024 (o 2 ^ 10). Debido a que 65.536 es igual a 64 X 1024, este límite se conoce como el "límite de referencia de 64K".
Fuente AS Doc
Problema multidex se produce cuando se utiliza un montón de bibliotecas en su proyecto. Si el código de tu aplicación tiene métodos de más de 64 KB, entonces sucede.
Cuando su aplicación y las bibliotecas a las que hace referencia alcanzan cierto tamaño, se producen errores de compilación que indican que su aplicación ha alcanzado el límite de la arquitectura de compilación de aplicaciones para Android.
Puede consultar algunos enlaces como:
Cómo habilitar multidexing con la nueva biblioteca de soporte de Android Multidex
https://mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost
- La aplicación de Android se bloquea después de la ofuscación de proguard
- ¿Equivalente de NavUtils cuando no está usando la biblioteca de soporte de Android?