Ich entwickle eine Android-App, die E-Mails mit der GMail-API versendet. Ich habe den Beispielcode unter Android Quickstart und Sending Email verwendet und alles funktioniert gut, wenn ich die App debuggen. Das Problem tritt auf, wenn ich die Release-Version mit minifyEnabled=true
erstelle. In diesem Fall geht der Aufruf an service.users().messages().send(userId, message).execute();
mit IOException
in Fehler über. Die Nachricht der Ausnahme lautet "404 Not Found".GMail-API funktioniert nicht richtig, wenn minifyEnabled = true ist
Die Proguard Datei enthält alle -keep class
und -dontwarn
, die ich in anderen Beiträgen gefunden haben:
-dontwarn com.google.**
-dontwarn java.awt.**
-dontwarn javax.security.**
-dontwarn java.beans.**
-keep class com.google.**
-keep public class Mail {*;}
-keep class com.sun.activation.** {*;}
-keep class com.sun.activation.registries {*;}
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
Ich glaube nicht, es ist ein Problem der Beglaubigungsschreiben als E-Mails gesendet werden, wenn ich die App anmelden mit minifyEnabled=false
. Ich habe auch die Release-Version der App auf dem Emulator getestet, Einstellung minifyEnabled=true
und debuggable=true
. In diesem Fall werden E-Mails gesendet, aber das APK ist größer, wenn es debuggbar ist, also denke ich, dass etwas Grundlegendes beibehalten wird.
dependecies in der gradle Datei sind die folgenden
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile('com.google.api-client:google-api-client-android:1.22.0') {
exclude group: 'org.apache.httpcomponents'
}
compile('com.google.apis:google-api-services-gmail:v1-rev47-1.22.0') {
exclude group: 'org.apache.httpcomponents'
}
compile 'org.achartengine:achartengine:1.2.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.google.android.gms:play-services:9.4.0'
compile 'com.facebook.android:facebook-android-sdk:4.12.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-ads:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'pub.devrel:easypermissions:0.1.5'
}
Ich bin nicht sicher exclude group: 'org.apache.httpcomponents'
aber das Entfernen sie das Problem nicht lösen.
'-Klasse Klasse com.google. ** {*;}' anstelle von '-Klasse halten com.google. **' löste das Problem, obwohl nicht sicher, dass dies eine optimale Lösung ist. –