私はSamsung's Motion libraryを使用して、Samsungの携帯用歩数計を作成しています。私がgradle構成ファイルで縮小せずにAPKを作成すると、システムが機能します。私は店にリリースする前に、縮小を適用しようとすると、しかし、Android:動的にアクセスされるクラスを難読化する
buildTypes {
release {
minifyEnabled true
signingConfig signingConfigs.config
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
jniDebuggable false
}
は、私はいくつかのライブラリ(例えばandroid.hardware.motion
)が存在しないと主張したエラーを得ました。 は、私がチェックしています
- android.hardware.motionが標準ライブラリではありません(?おそらく唯一のサムスンの携帯電話に存在)android.hardware
- にこれらのクラスがある(多分非標準のため?)動的にアクセスし、例えば私は本当の をminifyEnabledライン を削除する場合
Class.forName("android.hardware.scontext.SContextManager");
は、私はエラーを得ていないので、コードの難読化でなければなりません。
私はProGuardの規則に、このような
-keep class android.hardware.** { *; }
-keep class com.samsung.android.sdk.** { *; }
としてファイル文を追加しようとしましたが、これは動作するようには思えません。 ありがとう!
proguardを無効にし、リリース.apkをチェックしようとしましたか? –
は私が挿入された: '-dontoptimize -dontshrink -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose'しかし、あなたはあなただけproguardFiles''で始まる行を削除する必要があります(それが推奨されます)のGradleを使用している場合には、 – FabioC
を助けていません( 'android.buildTypes.release'セクション)。 –