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のファイルに
の依存性は、私が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。** {*;} 'が問題を解決しましたが、これは最適な解決策ではありません。 –