Carga de clase dinámica con IntelliJ – 64K method dex issue

Estoy trabajando en un proyecto que se está acercando rápidamente al límite del método 64K para los archivos del dex. Esta publicación de blog para desarrolladores de Android (desde julio de 2011) explica cómo obtener una carga de clase dinámica trabajando con una compilación de línea de comandos dirigida por Ant, pero no explora cómo hacerlo funcionar desde IDE (además de decir que no funcionará en Eclipse ).

Miré alrededor y no pude encontrar nada en conseguir este sistema para trabajar desde IntelliJ. ¿IntelliJ admite la creación de aplicaciones con múltiples archivos dex? Si es así, ¿cómo lo configuramos?

Trate de usar ProGuard para quitar las clases y métodos no utilizados de su proyecto y debería (esperanzadamente) encontrar que no necesita múltiples archivos dex.

Dicho esto si lo hace: IntelliJ y Eclipse son sólo IDEs – no directamente construir su código – por lo que tendrá que identificar cómo se está construyendo su proyecto – más probable hormiga o Gradle.

Si su proyecto es un proyecto de Gradle, entonces habrá un archivo build.gradle en la raíz del proyecto; si este es el caso, entonces tendrá que buscar cómo lograr lo mismo con el complemento de Android Gradle, un buen lugar para comenzar Puede ser http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Manipulating-tasks .

Hay dos opciones:

  1. Romper la clase existente. O
  2. Mueva su clase a otro proyecto y construya como una biblioteca (.jar). Y como sugiere la publicación del blog (mencionada en la consulta), utilice su clase para cargar esta biblioteca (.jar) en su proyecto por separado.

¿Puede proporcionar detalles sobre su proyecto?

Recientemente tuve el mismo problema después de conectar la biblioteca PlayN a mi proyecto. Primero leí todos los posts que mencionaste y cosas relacionadas, pero eventualmente resolví el problema al excluir parte de las clases del tarro dependiente de Pitágoras (eliminé el paquete pythagoras.d, que es para "doble", ya que pythagoras.f, Float ", fue utilizado en lugar de en PlayN), que fue una de las mayores dependencias en PlayN.

Tal vez usted puede encontrar similar lugar débil en sus dependencias de proyectos.

Eclipse puede lanzar scripts de hormigas externas pero que no ayudará con las herramientas. La mejor recomendación es Android Studio y Gradle, ya que todos los comandos se ejecutan externamente al IDE y, a continuación, portan este script de Ant. http://code.google.com/p/android-custom-class-loading-sample/source/browse/ Trunk / android-custom-class-loading-sample / build.xml para gradle.

Mantenga un ojo hacia fuera para cierto apoyo oficial en las líneas de: https://groups.google.com/forum/#!topic/gradle-android-plugin-users/zG_xUeVaV7s

Multidex parece ser la mejor (y más rápida) opción para abordar el límite del método de 65K. Google tiene una gran documentación sobre cómo configurar Multidex aquí .

  • Conexión inalámbrica automática de dispositivos Android e IntelliJ vía adb
  • ¿Cómo puedo añadir un submódulo java gradle a mi módulo Android?
  • ¿Cómo hacer referencia a un estilo definido en un módulo de Android con IntelliJ?
  • AndroidAnnotations y Dagger
  • Cómo configurar gradle home mientras importa proyectos existentes en Android studio
  • Android Dex: No se puede ejecutar DX (IntelliJ)
  • Eliminación de compilaciones de actualización de Android Studio (o Intellij) ignoradas
  • IntelliJ y android.support.v7.widget.GridLayout
  • No se puede ejecutar con SDK de Facebook incluido
  • XmlPullParser obtener archivo del sistema de archivos
  • ¿Cómo configurar IntelliJ para Mac para mostrar la documentación de Java y Android dentro del editor (offline, no en línea)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.