GMail API를 사용하여 전자 메일을 보내는 Android 앱을 개발 중입니다. Android Quickstart 및 Sending Email에 예제 코드를 사용했으며 앱을 디버깅 할 때 모든 것이 잘 작동합니다. minifyEnabled=true
으로 출시 버전을 구축 할 때 문제가 발생합니다. 이 경우 service.users().messages().send(userId, message).execute();
을 호출하면 IOException
으로 오류가 발생합니다. 예외 메시지는 "404 Not Found"입니다.Gmail API가 제대로 작동하지 않습니다. minifyEnabled = true
Proguard와 파일에 포함 된 모든 나는 다른 게시물에서 발견 -keep class
및 -dontwarn
:
-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.** {*;}
은 내가 응용 프로그램을 등록하면 이메일이 전송로 자격 증명의 문제라고 생각하지 않습니다 minifyEnabled=false
. 나는 또한 에뮬레이터에서 앱의 릴리스 버전을 시험해 보았는데 minifyEnabled=true
과 debuggable=true
으로 설정했다. 이 경우 전자 메일이 전송되지만 디버깅 할 때 APK가 더 커지므로 근본적인 것이 유지됩니다. Gradle을 파일에
Dependecies은 내가 exclude group: 'org.apache.httpcomponents'
에 대해 확실하지 않다
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'
}
다음하지만 문제가 해결되지 않습니다 제거된다.
'-keep class com.google. ** '대신'-keep class com.google. ** {*;}'이 문제를 해결했지만 이것이 최적의 해결책인지는 확실하지 않습니다. –