modificar editar archivos java android gradle dex android-productflavors

java - modificar - editar archivos smali



Varios archivos dex definen<mi paquete>/BuildConfig, no puede encontrar la causa: (4)

Agrega esto a tu build.gradle:

android { dexOptions { preDexLibraries = false } }

Supongo que de esta manera no hay BuildConfig.java conflictivo.

EDITAR:

Por qué funciona lo anterior: Android Studio primero dex las bibliotecas antes de dexear el módulo de la aplicación. Si tiene un módulo de biblioteca con el mismo nombre de paquete que su módulo de aplicación, este ''pre-dexing'' resultará en la creación de un BuildConfig.java en el mismo paquete que para la aplicación.

No ''pre-dexing'' ralentizará un poco su proceso de compilación, así que le sugiero que cambie el nombre del paquete de su biblioteca.

Estoy usando el nuevo sistema de desarrollo de Gradle y estoy enfrentando el siguiente problema:

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/kibo/mobi/BuildConfig; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)

Imprimiendo las dependencias no puedo ver nada, aquí están:

firstDebugCompile - ## Internal use, do not manually configure ## /--- KiboGradle:KiboSDK:unspecified +--- KiboGradle:TextInputAPI:unspecified +--- KiboGradle:VoiceImeUtils:unspecified +--- com.google.android.gms:play-services:5.0.77 | /--- com.android.support:support-v4:19.1.0 +--- com.squareup.picasso:picasso:2.3.2 +--- com.google.code.gson:gson:2.2.4 /--- com.crittercism:crittercism-android-agent:4.5.1

Intenté verificar que el problema no es una biblioteca de soporte duplicado, así que intenté agregar:

compile (''com.google.android.gms:play-services:5.0.77''){ exclude module: ''support-v4'' }

Lo que resultó en errores de que algunas de las clases de la biblioteca de support-v4 no se pueden encontrar, por lo que esta biblioteca no se compila desde ninguna otra ubicación.

Una cosa que tuve en mente que podría causar este problema es el hecho de que al usar Flavors feautre in oreder para crear varias versiones de mi aplicación con diferentes archivos de recursos.

Y cuando miro el archivo que está en el error, veo esto:

** * Automatically generated file. DO NOT MODIFY */ package com.kibo.mobi; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String PACKAGE_NAME = "com.kibo.mobi.test.official"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = "liverpool"; public static final int VERSION_CODE = 1; public static final String VERSION_NAME = "1.0"; }

Por lo tanto, el paquete en el archivo y el paquete especificado en el valor de cadena no son lo mismo.

¿Alguien puede ver algún problema en mi configuración que pueda causar este problema?


En mi caso, ocurrió un error similar porque había 2 módulos con el mismo nombre de paquete en los archivos AndroidManifest.xml. El uso de diferentes nombres de paquetes en los módulos solucionó el problema.

También sucede lo mismo cuando un contenedor de biblioteca se incluye dos veces (o más veces) en varios módulos, como una dependencia. En este caso, el mensaje de error dice acerca de las configuraciones duplicadas que llevan el nombre del paquete de esa biblioteca. Lo resolví con la inclusión de la biblioteca como una dependencia en un módulo, y el segundo módulo tenía dependencias el primer módulo.


Estaba teniendo este problema al firmar mi apk instantáneo . El problema:

módulo / aplicación / manifest.xml incorrecto

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.">

bueno: modulo / app / manifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example..app">

Simplemente agregando el .app al final del nombre del paquete


Para mí, simplemente hacer una limpieza en el proyecto borró este error.