web-dev-qa-db-ja.com

原因:com.Android.tools.r8.utils.AbortException:エラー:プログラムタイプは既に存在します:com.google.Android.gms.security.ProviderInstaller

こんにちは、AdMob SDKを追加しようとしたときに、次のエラーが発生しました。

Caused by: com.Android.tools.r8.utils.AbortException: Error: Program type already present: com.google.Android.gms.security.ProviderInstaller
  • 私はもう試した

  • キャッシュを無効にする

  • クリーニングと再構築

  • ./gradlew build --stacktrace--infoコマンドを使用する

しかし、成功しませんでした。

これは私が毎回得ているものです:

Caused by: com.Android.tools.r8.utils.AbortException: Error: Program type already present: com.google.Android.gms.security.ProviderInstaller

これが私のアプリbuild.grableです:

    apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "ar.rulosoft.mimanganu"
        versionCode 92
        versionName "1.92"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
        minSdkVersion 15
    }
    signingConfigs {
        release {
            storeFile file("../mimanganu.jks")
            storePassword 'mimanganu'
            keyAlias 'mimanganu'
            keyPassword 'mimanganu'
        }
        debug {
            storeFile file("../mimanganu.jks")
            storePassword 'mimanganu'
            keyAlias 'mimanganu'
            keyPassword 'mimanganu'
        }
    }
    buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                disable 'NewApi' //Avoid problems in Android Studio 2.4 preview 6
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            debuggable true
            signingConfig signingConfigs.debug
        }
    }
    compileOptions.encoding = 'UTF-8'
    flavorDimensions "builds"
    productFlavors {
        fdroid {
            signingConfig signingConfigs.release
            versionNameSuffix '-fdroid'
            dimension "builds"
        }
        github {
            signingConfig signingConfigs.release
             //removed to maintain updates as now are
            dimension "builds"
        }
    }
}

Android.sourceSets {
    test {
        Java.srcDirs += "$projectDir/src/testShare"
    }

    androidTest {
        Java.srcDirs += "$projectDir/src/testShare"
    }
}

configurations.all {
    resolutionStrategy.force 'com.Android.support:support-annotations:25.3.1'
}

dependencies {
    final Android_SUPPORT = '28.0.0'
    implementation "com.Android.support:support-v4:$Android_SUPPORT"
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "com.Android.support:design:$Android_SUPPORT"
    implementation "com.Android.support:appcompat-v7:$Android_SUPPORT"
    implementation "com.Android.support:recyclerview-v7:$Android_SUPPORT"
    implementation "com.Android.support:preference-v7:$Android_SUPPORT"
    api project(':imageviewtouchlibrary')
    implementation 'rapid.decoder:library:0.3.0'
    implementation 'rapid.decoder:jpeg-decoder:0.3.0'
    implementation 'rapid.decoder:png-decoder:0.3.0'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0' //on 3.10.0 are deprecated some ciphers
    implementation 'com.squareup.okio:okio:1.15.0'
    implementation 'com.squareup.duktape:duktape-Android:1.3.0'/* v 1.2.0 need 4+mb extra*/
    implementation 'com.github.franmontiel:PersistentCookieJar:v1.0.1'
    implementation 'com.evernote:Android-job:1.2.5'
    githubImplementation 'com.google.Android.gms:play-services-base:16.0.1'
    // ADDED BY O D I N
    implementation 'com.google.Android.gms:play-services-ads:17.1.1'
    // ADDED BY O D I N
    implementation 'ch.acra:acra:4.9.2'
    fdroidApi project(':fakegps')
    // for device-based testing
    androidTestImplementation "com.Android.support:support-annotations:$Android_SUPPORT"
    androidTestImplementation 'com.Android.support.test:runner:1.0.2'
    androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.Android.support.test:rules:1.0.2'
    androidTestImplementation 'junit:junit:4.12'
    // for Host-based testing
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.robolectric:robolectric:4.0-beta-1'

    Android {
        testOptions {
            unitTests {
                includeAndroidResources = true
            }
        }
    }
}

プロジェクトのbuild.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.2.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

        maven { url "https://jitpack.io" }
        // ADDED BY O D I N
        maven {
            url "https://maven.google.com"
        }
        // ADDED BY O D I N


        maven {
            url 'https://github.com/suckgamony/RapidDecoder/raw/master/repository'
        }
        google()
    }
}

sDKを何度も追加しようとしても、まだ解決策が見つかりません。ここで見つけられるといいのですが。

3
Zakaria

追加 maven { url 'https://maven.fabric.io/public' }プロジェクトbuild.gradleに。以下のように。これは私のためにそれを修正しました。

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
       maven { url 'https://maven.fabric.io/public' }

    }
0
Alex Catana

追加

Android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}

dependencies {
  implementation 'com.Android.support:multidex:1.0.3'
}

Android 5.0より前のMultidexサポート

 dependencies {
        def multidex_version = "2.0.1"
        implementation 'androidx.multidex:multidex:$multidex_version'
    }

https://developer.Android.com/studio/build/multidex

0

同じ種類のエラーが発生しました:com.Android.tools.r8.utils.AbortException: Error: Program type already present: [com.some.lib]

コンソールにすべての依存関係をダンプした後(./gradlew dependencies > ./dept.txtを介して)、新しく追加されたaarには、上記で報告されたものと同じ依存関係ライブラリが含まれていることがわかりました。完了しました。

implementation ('the-new-library') {
    transitive = true
    exclude group : 'duplicate-lib-pkg', module:"duplicate-lib-name"
}
0
rayworks