Как отладить ошибки D8 типа «Тип X упоминается как интерфейс от Y»? - PullRequest
0 голосов
/ 02 апреля 2019

Прямо сейчас у меня есть проект, который имеет 3 модуля, один модуль app и модуль streaming, который использует свой собственный модуль base.

Когда я строю этот проект, он всегда терпит неудачу в app:transformClassesWithDexBuilderForDev2Debug, и это всегда это:

AbortException: Type com.google.android.gms.internal.measurements.zz<something> is referenced as an interface from com.google.android.gms.internal.measurements.zz<something else>

Мой app модуль Gradle выглядитнапример:

...
ext {
    supportLibVersion = '28.0.0';
    gmsVersion = '15.0.0';
}

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation files('libs/libadapterinmobi.jar')
    implementation project(':streaming')

    implementation 'com.twitter.sdk.android:twitter-core:3.3.0'
    implementation('com.crashlytics.sdk.android:crashlytics:2.9.6@aar') {
        transitive = true
    }
    implementation('com.redbricklane.zapr:zapr-sdk:3.2.1@aar') {
        transitive = true;
    }
    implementation 'com.redbricklane.zapr.admob:zapr-admob-adapter:2.1@aar'
    implementation "com.android.support:appcompat-v7:$supportLibVersion"
    implementation "com.android.support:customtabs:$supportLibVersion"
    implementation "com.android.support:design:$supportLibVersion"
    implementation "com.android.support:cardview-v7:$supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$supportLibVersion"
    implementation "com.android.support:palette-v7:$supportLibVersion"
    implementation "com.android.support:support-v4:$supportLibVersion"

    implementation "com.google.android.gms:play-services-location:16.0.0"
    implementation "com.google.android.gms:play-services-analytics:16.0.4"
    implementation "com.google.android.gms:play-services-ads:17.1.2"
    implementation "com.google.android.gms:play-services-auth:16.0.1"

    implementation "com.google.firebase:firebase-core:16.0.8"
    implementation "com.google.firebase:firebase-inappmessaging-display:17.1.1"
    implementation "com.google.firebase:firebase-messaging:17.5.0"
    implementation "com.google.firebase:firebase-auth:16.2.0"
    implementation "com.google.firebase:firebase-database:16.1.0"
    implementation "com.google.firebase:firebase-config:16.4.1"
    implementation "com.google.firebase:firebase-appindexing:17.1.0"

    implementation 'com.android.support:multidex:1.0.3'

    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.github.bumptech.glide:annotations:4.9.0'
    implementation 'com.github.bumptech.glide:volley-integration:4.2.0@aar'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

    implementation('com.facebook.android:facebook-android-sdk:4.30.0') {
        exclude group: 'com.google'
    }
    implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
    implementation 'com.melnykov:floatingactionbutton:1.3.0'
    implementation 'com.googlecode.mp4parser:isoparser:1.1.22'
    implementation 'me.relex:circleindicator:1.2.1@aar'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.mixpanel.android:mixpanel-android:4.9.8'
    implementation 'com.flurry.android:analytics:6.4.2'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
    implementation 'com.danikula:videocache:2.7.0'
    implementation 'com.inmobi.monetization:inmobi-ads:7.2.1'
    implementation 'commons-io:commons-io:2.5'
    implementation 'com.github.livefront:bridge:v1.1.3'
    implementation 'frankiesardo:icepick:3.2.0'
    annotationProcessor 'frankiesardo:icepick-processor:3.2.0'
}
...

И файл Gradle моего streaming модуля выглядит следующим образом:

...
androidExtensions {
    experimental = true
}

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //implementation files('libs/libadapterinmobi.jar')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support.constraint:constraint-layout-solver:1.1.3'
    implementation 'com.android.volley:volley:1.1.1'

    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation 'android.arch.lifecycle:viewmodel:1.1.1'
    implementation 'android.arch.lifecycle:livedata:1.1.1'
    implementation 'android.arch.persistence.room:runtime:1.1.1'
    implementation 'android.arch.paging:runtime:1.0.1'


    implementation ("com.facebook.android:facebook-core:4.28.0") {
        exclude group: 'com.google'
    }

    implementation('com.crashlytics.sdk.android:crashlytics:2.9.6@aar') {
        transitive = true
    }

    //implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.google.firebase:firebase-invites:16.1.1'
    //implementation 'com.google.firebase:firebase-messaging:17.5.0'
    //implementation 'com.google.firebase:firebase-dynamic-links:16.1.8'
    implementation 'com.google.android.gms:play-services-auth:16.0.1'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.google.android.exoplayer:exoplayer:2.9.1'
    implementation 'com.google.android.exoplayer:extension-rtmp:2.9.1'
    implementation 'com.google.code.gson:gson:2.8.2'

    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0'

    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'

    implementation 'com.intuit.ssp:ssp-android:1.0.5'
    implementation 'com.intuit.sdp:sdp-android:1.0.5'

    implementation 'com.vinaysshenoy:mugen:1.0.2'

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    implementation 'com.github.florent37:viewtooltip:1.1.6'

    implementation 'com.karumi:dexter:5.0.0'

    implementation 'com.android.billingclient:billing:1.2'

    implementation 'me.saket:better-link-movement-method:2.2.0'

    implementation 'com.makeramen:roundedimageview:2.3.0'

    implementation 'com.github.yalantis:ucrop:2.2.2'

    implementation 'com.robinhood.ticker:ticker:2.0.1'

    implementation project(':playtrivia-base')
    //implementation project(':stepbarview')

    annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
    annotationProcessor "android.arch.persistence.room:compiler:1.1.1"

    testImplementation 'junit:junit:4.12'

    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {
    maven { url "http://dl.bintray.com/amulyakhare/maven" }
    maven { url "https://jitpack.io" }
    mavenCentral()
}
...

Большинство сообщений об этой ошибке можно найти здесь и на страницах выпуска репозитория github.и все они предлагают исключить com.google в своих кодах включения Gradle.Проблема здесь в том, что я не знаю, в какое из них включить это исключение, поскольку я не знаю, какое из них использует com.google.android.gms.internal.measurements.<something>.

РЕДАКТИРОВАТЬ: я забыл упомянуть, что все другие решения вэти посты включают обновление всех репозиториев Firebase и play-services до их последней версии.Это не работает для меня.

Уровень проекта androidDependencies Задача Gradle тоже не помогла (у меня не было обращений при поиске internal).

При всем этомкак мне вообще начать отлаживать это?

...