Google Rest API v3を使用してAndroid搭載アプリをGoogleドライブに接続しています。 Proguard(minifyEnabled = false)を使わずに実行すると、すべて正常です。しかし、私がproguardを有効にすると、誤ったREST APIメソッドが呼び出されます。 Drive.Files.get()。を呼び出すと、ドライブのルートエイリアス "root"で実行され、Drive.Files.list()の実行結果が取得されます。私が "minifyEnabled"を無効にすると、正しい結果が表示されます。ここではProGuardの実行制御build.gradleのセクションでは、次のとおりです。GoogleドライブREST APIでProguardの問題を解決するには
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
デフォルトProGuardのファイルは、Android Studioの2.2(ない最適化されたバージョン)とが配信を取得し、そのまま1
であり、これはあります私は、生成mapping.txtをチェックインすると、私のproguard-rules.proファイル
-keepattributes EnclosingMethod
-keepattributes InnerClasses
-dontoptimize
-keep class com.google.**
-keep class com.fasterxml.**
-dontwarn com.google.**
の内容は、私はまだ芋「保管」されているshoudlクラスに名前を変更したメンバーを参照してください。例えば:
com.google.api.client.auth.oauth.OAuthParameters - > com.google.api.client.auth.oauth.OAuthParameters: にjava.security.SecureRandom RANDOM - > L com.google .api.client.auth.oauth.OAuthSigner signer - > a java.lang.Stringコールバック - > b java.lang.String consumerKey - > c java.lang.String nonce - > d java.lang.String realm - > e
私は "-keep class com.google。**"がこれを避けていると思いましたか?
これを修正する方法はありますか?あなたは
-keep class com.google.** { *;}
と
-keep class com.fasterxml.** { *;}
を必要とし、事前に
おかげで、
あなたはそれを修正しましたか?私は同じ問題に直面しています。ご存じの方はお手伝いください。ありがとう – SimpleCoder
はい、2016年11月2日の最後のコメントを参照してください "私はそれを絞り込むことができました...." –