-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-dontwarn android.support.**-libraryjars /android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment--
Androidxへの移行すれば。
まずAndroid StudioのなかでRefactorのMigrate to Androidx...を選んで、プロセズ終わったら、gradle.propertiesで以下のコンフィグレーションを追加します。
android.enableJetifier=true
android.useAndroidX=true
build.gradle(app level)
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.vizo.beforeafter"
minSdkVersion 19
targetSdkVersion 28
versionCode 10
versionName '1.0'
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// gradle.buildに以下の設定を追加してください
// APKファイルを抽出しらた、このPathを見ることができます
packagingOptions {
exclude 'META-INF/proguard/androidx-annotations.pro'
}
...
}
dependencies {
....
// Android support libs
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha01'
implementation 'androidx.exifinterface:exifinterface:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0-alpha01'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
implementation 'androidx.multidex:multidex:2.0.0'
....
}
私のプロジェクトは問題ないです。
返事遅くなってすみません。
ビルドが失敗するのは、Androidが64kメソッドしか持っていないという制限によるものです。
これはDalvikの実行可能ファイルの仕様の制限によるものです。
Multidexを使用するためのアプリの設定を有効にして64 k制限を回避することができます。minSdkVersionを21 以上に設定している場合は、次に示すように、モジュール レベルの build.gradle
ファイルでmultiDexEnabledをtrueに設定するだけです。
android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
}
...
}
build.gradle ファイルを変更して Multidex を有効にし、Multidex ライブラリを依存関係として追加します。
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.3'
}
Application クラスをオーバーライドする場合、次のように MultiDexApplication を拡張するように変更します(可能な場合)。public class MyApplication extends MultiDexApplication { ... }
Application クラスをオーバーライドする場合で、基本クラスを変更できない場合は、attachBaseContext() メソッドをオーバーライドして MultiDex.install(this) を呼び出すことで Multidex を有効にできます。
public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
なお
ProGuardを使用してjarファイルを縮小することで、不要なメソッドやAPIを取り除くことができます。
ProGuardに関する詳細情報はこちら
https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/introduction.html
ProGuardを統合してandroidビルドの一部としてjarファイルを縮小する方法です。
https://developer.android.com/studio/build/shrink-code
日本語ではっきり説明でしなかったのですみません。
チン様のご指摘した方法でBuildのログを取ってみました。やり方が合っているのかわかりませんが、とりあえず投稿してみます。