Android resuelve el problema del método Eclipse superior a 65535

Ahora, la mayoría del desarrollo debería usar las herramientas de Android Studio para el desarrollo, pero también hay algunos desarrollos que trabajan arduamente y continúan usando Eclipse para el desarrollo.

Recientemente, cuando estaba haciendo una depuración conjunta de la interfaz API con un socio, la otra parte me dijo que la arquitectura de su juego es relativamente antigua y todavía usa Eclipse para el desarrollo de Android, por lo que necesito proporcionar la versión Eclipse del paquete de recursos de Android.

Bueno, comencé a transferir a Eclipse y descubrí que había demasiados métodos para informar errores, que superaban los 65535, por lo que tuve que fusionar y subempaquetar los archivos jar en classes.dex.

Primero, instale ant en la computadora y cree un archivo build.xml de la siguiente manera

<?versión xml= codificación "1.0" = "utf-8" ?>

< nombre del proyecto = "libs" basedir = "/Users/xx/Desktop/sdkjar" predeterminado = "makeSuperJar" >

    < nombre de destino = "hacerSuperJar"   descripción = "descripción" >

        <jar destfile = "/Usuarios/xx/Desktop/sdkjar/all.jar" >

            <zipfileset src = "CustomService_1.2.3.jar" />

            <zipfileset src = "okhttp-3.12.1.jar" />

            <zipfileset src = "okio-1.15.0.jar" />

        </tarro>

    </objetivo>

</proyecto>

basedir = "/Users/xx/Desktop/sdkjar" es la ruta donde se encuentra el paquete jar.

destfile = "/Users/xx/Desktop/sdkjar/all.jar" es la ruta del paquete jar sintetizado.

<zipfileset src = "okhttp-3.12.1.jar" /> son los recursos involucrados en la fusión de paquetes jar

Vaya al directorio donde se encuentra el archivo build.xml y ejecute el comando ant -buildfile build.xml    para fusionar los paquetes jar.

Después de fusionar los paquetes jar, debe usar dx --dex --output=classes.dex (la ruta y el nombre del dex generado)   source.jar (la ruta del paquete jar que debe fusionarse)

Esto completa la generación del archivo classes.dex. Para usar este dex, debe cambiarle el nombre a classes2.dex y colocarlo en el directorio src del proyecto para completar la compilación.

De esta manera, el problema de 65535 se resuelve subcontratando múltiples archivos dex diferentes, como clases.dex, clases2.dex....etc.

Además de las operaciones anteriores, debe agregar MultiDex.install(this); llamar a la aplicación addedBaseContext del proyecto

@Override
  protected void attachBaseContext(Context base) {         super.attachBaseContext(base);         MultiDex.install(esto);     }


 

 

Supongo que te gusta

Origin blog.csdn.net/chenya866/article/details/98878424
Recomendado
Clasificación