Problemas de desarrollo con la creación de apk

OK Esto me está volviendo loco desde hace un día. Soy principalmente un tipo de iOS, así que no sé mucho sobre Proguard y esas cosas. He creado una aplicación para Android que incluye Dropbox y la API de Google Drive. La aplicación funciona bien si la implemento en un teléfono a través de Eclipse, pero recibo un error desagradable en la consola cuando bash exportar la aplicación para la generación de archivos apk. Mis archivos project.properties era como …

# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt:proguard-google-api-client.txt # Project target. target=android-17 android.library=false 

Y el cuadro de diálogo de error era este … PROJECT_FOLDER_NAME / proguard-project.txt no existe o no es un archivo normal

Así que edité mi project.properties y eliminé la parte proguard-project.txt .

Ahora al crear apk me sale estos errores en la consola …

 [2013-05-15 18:48:28 - BackMyAppUp] Proguard returned with error code 1. See console [2013-05-15 18:48:28 - BackMyAppUp] Note: there were 367 duplicate class definitions. [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.commons.logging.impl.ServletContextCleaner: can't find superclass or interface javax.servlet.ServletContextListener [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.FormBodyPart: can't find superclass or interface org.apache.james.mime4j.message.BodyPart [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.HttpMultipart: can't find superclass or interface org.apache.james.mime4j.message.Multipart [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.MinimalField: can't find superclass or interface org.apache.james.mime4j.parser.Field [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.content.AbstractContentBody: can't find superclass or interface org.apache.james.mime4j.message.SingleBody [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.content.ContentBody: can't find superclass or interface org.apache.james.mime4j.message.Body [2013-05-15 18:48:28 - BackMyAppUp] Warning: org.apache.http.entity.mime.content.ContentBody: can't find superclass or interface org.apache.james.mime4j.descriptor.ContentDescriptor [2013-05-15 18:48:28 - BackMyAppUp] Warning: library class android.net.http.AndroidHttpClient extends or implements program class org.apache.http.client.HttpClient [2013-05-15 18:48:28 - BackMyAppUp] Warning: com.google.android.gms.auth.GoogleAuthUtil: can't find referenced class com.google.android.gms.R [2013-05-15 18:48:28 - BackMyAppUp] Warning: com.google.android.gms.auth.GoogleAuthUtil: can't find referenced class com.google.android.gms.R$string [2013-05-15 18:48:28 - BackMyAppUp] Warning: com.google.android.gms.auth.GoogleAuthUtil: can't find referenced class com.google.android.gms.R$string [2013-05-15 18:48:28 - BackMyAppUp] Warning: com.google.android.gms.auth.GoogleAuthUtil: can't find referenced class com.google.android.gms.R$string 

y unas 300 líneas similares.

Si uso el apk generado desde la carpeta bin, la función de Google Drive no funciona en el teléfono, pero funciona si lo implemento a través de Ecipse. Por favor, ayúdame.

FWIW, después de actualizar a ADT 22 tuve más de 800 errores similares con una configuración de Proguard que anteriormente funcionaba bien, la aplicación también se bloqueó en un dispositivo con errores ClassDefNotFound cuando se construyó sin Proguard.

La solución al final fue marcar “Bibliotecas privadas de Android” en la pestaña Ordenar y exportar del editor de rutas de comstackción para mi proyecto principal y todos sus proyectos de biblioteca.

O desea utilizar Proguard (optimización, ofuscación, …) o no.

Si no quiere, solo comente (con un #) la parte que apunta a la configuración de su progtwig en su project.properties:

 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt:proguard-google-api-client.txt 

Si lo desea, la solución es mantener la línea tal como está y crear los siguientes archivos: proguard-project.txt y proguard-google-api-client.txt

Para el proguard-google-api-client.txt, puede encontrar un ejemplo aquí: https://google-api-java-client.googlecode.com/hg/google-api-client-assembly/proguard-google-api -client.txt

Para el proguard-project.txt, dependerá de los errores que obtenga después de archivar el otro. Es posible que necesite agregar varios:

 -libjars  

y algunos otros -dontwarn, dependiendo de las advertencias que reciba …

Bueno, esto se siente un poco estúpido, durante 3 días me metí con Proguard, pero el problema fue que usé la clave SHA1 de debug keystore en el apk de la versión, por lo tanto, la aplicación de Google Drive, utilicé la clave SHA1 correcta en la consola API de Google para resolver. eso.