Мой проект больше не компилируется с оптимизацией Proguard.
Как вы увидите ниже, здесь упоминается dagger
, но я не использовал ничего связанного с этим напрямую. Недавно я обновил много зависимостей одновременно.
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.AndroidMemorySensitiveReferenceManager_Factory: can't find referenced class dagger.releasablereferences.TypedReleasableReferenceManager
Warning: dagger.android.ReleaseReferencesAt: can't find referenced class dagger.releasablereferences.CanReleaseReferences
Если я использую dontwarn
для подавления dagger
связанных строк, я получаю следующие сообщения (я пытался получить больше строк с --info
, --debug
и --scan
, но вывод содержит ту же информацию):
> Task :app:transformClassesAndResourcesWithProguardForRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: 2
Я пробовал последнюю версию (6.1.1) Proguard (переопределяя стандартную), результат тот же.
В чем может быть причина?
Содержимое приложения build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 29//28
buildToolsVersion "29.0.0" //"28.0.3"
defaultConfig {
applicationId "myapp"
minSdkVersion 16
targetSdkVersion 28
versionName "1.1.1"
multiDexEnabled true
manifestPlaceholders.crashlyticsEnabled = "true"
}
buildTypes {
release {
useProguard true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "2g"
}
}
configurations {
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
dependencies {
implementation 'com.android.billingclient:billing:2.0.0'
implementation 'androidx.media:media:1.1.0-rc01'
implementation 'androidx.preference:preference:1.1.0-beta01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'com.google.android.material:material:1.1.0-alpha07'
implementation files('libs/juniversalchardet-1.0.3.jar')
implementation project(path: ':ViewPageIndicator')
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-inappmessaging-display:18.0.0'
implementation 'com.google.firebase:firebase-ads:18.0.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.google.firebase:firebase-analytics:17.0.0'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.browser:browser:1.0.0'
implementation 'com.facebook.android:facebook-login:4.42.0'
implementation 'com.facebook.android:facebook-share:4.42.0'
implementation 'com.amplitude:android-sdk:2.23.0'
implementation 'com.flurry.android:analytics:11.5.0@aar'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'android.arch.lifecycle:runtime:1.1.1'
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation('io.socket:socket.io-client:1.0.0') {
exclude group: 'org.json', module: 'json'
}
}
apply plugin: 'com.google.gms.google-services'
UPDATE
Я вернул зависимости к их предыдущим версиям. Проблема в
implementation 'com.google.firebase:firebase-inappmessaging-display:18.0.0'
Если я изменю версию на 17.1.0
, проблема, связанная с «кинжалом», исчезнет. Если я изменю его на 17.2.0
, проблема вернется.
UPDATE2
Это может быть ошибкой в Firebase. Я связался с ними, и они создали внутренний отчет об ошибках. Я обновлю этот вопрос, когда у меня будет ответ.