programing

':app:checkDebugDuplicateClass' 작업을 실행하지 못했습니다.아이오닉 4 안드로이드

lastmoon 2023. 6. 6. 10:36
반응형

':app:checkDebugDuplicateClass' 작업을 실행하지 못했습니다.아이오닉 4 안드로이드

저는 현재 ionic4 어플리케이션을 진행하고 있는데, 최근 https://ionicframework.com/docs/native/fcm 플러그인을 어플리케이션에 추가한 후 안드로이드 real 디바이스에서 어플리케이션을 빌드하는 동안 동작이 중단되었습니다.

처음에는 패브릭 키에 대해 불평했지만, 저는 제 앱에서 패브릭 크래시틱을 사용하는 것을 목표로 하지 않았습니다.

오류 로그:

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)

  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 21s

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
35 actionable tasks: 5 executed, 30 up-to-date
cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)

  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 21s
[ERROR] An error occurred while running subprocess cordova.

        cordova run android exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.

안드로이드/앱/빌드.그레이들

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' } // Fabrics Maven repository from cordova-plugin-firebase
    }
    dependencies {

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0' // google-services dependency from cordova-plugin-firebase
        classpath 'io.fabric.tools:gradle:1.+' // fabric dependency from cordova-plugin-firebase
    }
}

allprojects {
    repositories {

        jcenter()
        google() // Google's Maven repository from cordova-plugin-firebase
    }
    //This replaces project.properties w.r.t. build settings
    project.ext {
      defaultBuildToolsVersion="28" //String
      defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
      defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

코르도바-아미노-파이어베이스/라이한-빌드.그래들

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
       classpath 'com.android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}


dependencies {
    compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    compile 'com.google.firebase:firebase-auth:+'
    compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
       transitive = true
    }
}
cdvPluginPostBuildExtras.add({
    // apply plugin: 'com.google.gms.google-services'
    apply plugin: 'io.fabric'
})

cordova-plugin-fcm-dependency-update/raihan-FCMPlugin.gradle

buildscript {
    repositories {
       google()
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}
repositories {
    google()
    jcenter()
}
dependencies {
    compile 'com.google.firebase:firebase-core:16.0.8'
}
// apply plugin: 'com.google.gms.google-services'
// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
// apply plugin: com.google.gms.googleservices.GoogleServicesPlugin

안드로이드/프로젝트.속성

 target=android-27
    android.library.reference.1=CordovaLib
    android.library.reference.2=app
    cordova.gradle.include.1=cordova-android-support-gradle-release/raihan-cordova-android-support-gradle-release.gradle
    cordova.system.library.1=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
    cordova.system.library.2=com.android.support:support-v4:24.1.1+
    cordova.system.library.3=com.soundcloud.android:android-crop:1.0.0@aar
    cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
    cordova.system.library.4=com.google.firebase:firebase-iid:17.1.1
    cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
    cordova.gradle.include.2=cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle
    cordova.gradle.include.3=cordova-support-google-services/raihan-build.gradle
    cordova.system.library.6=com.google.firebase:firebase-auth:16.2.0
    cordova.system.library.6=com.google.firebase:firebase-perf:16.2.4
    cordova.system.library.7=com.android.support:support-annotations:27.+
    cordova.system.library.8=com.android.support:appcompat-v7:23+
    cordova.system.library.8=com.google.firebase:firebase-iid:17.1.1
    cordova.system.library.8=com.google.android.gms:play-services-tagmanager:16.0.8
    cordova.system.library.8=com.google.firebase:firebase-config:16.4.0
    cordova.gradle.include.4=cordova-plugin-telerik-imagepicker/raihan-ignorelinterrors.gradle
    cordova.gradle.include.5=cordova-plugin-telerik-imagepicker/raihan-androidtarget.gradle
    cordova.gradle.include.6=cordova-android-support-gradle-release/raihan-cordova-android-support-gradle-release.gradle
    cordova.gradle.include.7=cordova-plugin-firebase/raihan-build.gradle

위의 파일을 제공하였으니, 추가로 업로드가 필요한 사항이 있으면 알려주시기 바랍니다.

  1. gradle.properties(프로젝트 속성)로 이동합니다.

  2. 더하다
    android.enableJetifier=true

  3. 은 리그고대부의시간은분시▁and은간▁most▁also그▁of의.android.useAndroidX=true파일 이름. Properties를 확인하고 addgradle.properties(Project Properties)를 지정합니다.
    android.useAndroidX=true Image-> 이지와비양모슷한미이모양▁--비>한▁likes슷와지이미>.

여기에 이미지 설명 입력

프로젝트(또는 하위 프로젝트 중 하나)는 다음과 같이 끝에 +(플러스 기호)를 사용하여 종속성을 나타냅니다.com.google.firebase:firebase-auth:+은 더 즉, 가면상버위사전용최고하신않다더습니버이를 하지 않습니다.android.support하고 있습니다.androidx단계를 를 하십시오.androidx다른 대답을 따름으로써.

단계:

  1. 확실하게 확인합니다.ANDROID_HOME을 의 경우).cd의 신의것에.android디렉토리(아이오닉 프로젝트의 경우)platforms/android).

  2. 먼저 아래(해당 콘솔에서)를 실행하여 모든 종속성을 파일에 나열합니다.

    ./gradlew :app:dependencies > my-list.txt
    

    변경 참고 사항:app다른 Gradle 모듈의 이름을 가진 부품(위에서 작동하지 않는 경우).

    다음과 같은 모듈 이름 목록을 참조하십시오.

    ./gradlew -q projects
    
  3. 과결열을 .my-list.txt파일에 하고 "" "" " " " " " " 를 검색합니다." 를 합니다.androidx.

  4. 다음 단계를 수행하는 것을 발견한 경우, 완료되었습니다!(이 단계를 반복할 필요가 없습니다).

  5. 또는 와 같이 줄 끝에 ->가 표시될 때까지 위로 스크롤합니다. 이는 버전이 자동으로 해결되었음을 의미합니다(+로 인해 사용자가 지정한 것보다 높은 값으로).

  6. 따라서 버전을 수동으로 아래로 설정합니다.

    • 가능하면 프로젝트에서 + 기호를 찾아 특정 버전으로 바꿉니다.
    • 또는 아래에 언급된 것처럼 종속성의 특정 버전을 강제로 적용합니다.
  7. 마지막으로 위의 단계를 반복합니다(단, 해당 콘솔을 닫지 않은 한 1단계만 건너뜁니다).


특정 버전의 종속성을 루트에 강제로 추가하려면build.gradle아래와 같은 것을 파일로 작성합니다(이것이 저에게 효과적이었습니다). 하지만 물론 아래를 편집하고 독자적인 규칙을 추가합니다(당신의 경우에는 효과가 없을 수 있기 때문입니다).

allprojects {
  // ...
  configurations.all {
    resolutionStrategy {
      force 'com.google.firebase:firebase-common:17.0.0'
      force 'com.google.android.gms:play-services-basement:16.2.0'
      force 'com.google.firebase:firebase-iid:16.0.0'
      force 'com.google.firebase:firebase-auth:17.0.0'
    }
  }
}

여러분의 래줄을추만하됩니다면에 만 하면 .gradle.properties파일 이름:

android.useAndroidX=true
android.enableJetifier=true

확인하고, 이미 존재하는 라인을 반복하지 않도록 주의하십시오(기존 라인이true).

마지막으로, 프로젝트를 다시 빌드하십시오.

수동으로 할 수도 .build폴더를 누릅니다.


세부 사항

프로젝트의 프로젝트 중 가 더 사용하지 .android.support하고 있습니다.androidx라이브러리와 혼합될 경우 충돌이 발생합니다.android.support도서관

당신이 경우용을 사용하고 .androidx 9 28)Gradle " 9.0"으로 해야 합니다.true.

android.useAndroidX이 플래그가 다음으로 설정된 경우trueAndroid 플러그인은 지원 라이브러리 대신 적절한 AndroidX 라이브러리를 사용합니다.는 깃은발입니다.false기본적으로 지정되지 않은 경우

android.enableJetifier이 플래그가 다음으로 설정된 경우trueAndroid 플러그인은 기존 타사 라이브러리의 바이너리를 다시 작성하여 AndroidX 종속성을 사용하도록 자동으로 마이그레이션합니다.는 깃은발입니다.false기본적으로 지정되지 않은 경우

저는 같은 문제를 발견했고 저의 해결책은 다음과 같습니다.

  1. gradle.properties 파일로 이동합니다.

  2. 다음 두 줄을 추가합니다.

    android.useAndroidX=true
    android.enableJetifier=true
    
  3. 프로젝트를 다시 빌드합니다.

바로 그겁니다.

참고: 프로젝트에 이미 표시된 경우android.useAndroidX=true그러면 그냥 추가.android.enableJetifier=true프로젝트를 다시 빌드할 수 있습니다.

저는 "cordova-plugin-androidx" 및 "cordova-plugin-androidx-adapter" 플러그인을 설치하는 것만으로 이 문제를 해결했습니다.

$ ionic cordova plugin add cordova-plugin-androidx
$ ionic cordova plugin add cordova-plugin-androidx-adapter

제가 직면한 문제는 반응 네이티브와 유사한 것입니다.

Execution failed for task ':app:checkDebugDuplicateClasses'.

작업자에 의해 java.dll이라는 예외가 발생했습니다.런타임 예외: java.lang.런타임 예외:kotlin.collections.jdk8 클래스가 중복됩니다.컬렉션JDK8Kt는 jetized-kotlin-stdlib-1.8.0.jar(또는 jetbrain) 모듈에 있습니다.kotlin:notlin-stdlib:1.8.0) 및 jetized-notlin-stdlib-jdk8-1.6.21.jar(jetbrain 제외).kotlin:kotlin-stdlib-jdk8:1.6.21) 클래스 kotlin이 중복됩니다.internal.jdk7.JDK7 플랫폼 jetized-kotlin-stdlib-1.8.0.jar(org.jetbrain) 모듈에 있는 플랫폼 구현.kotlin:notlin-stdlib:1.8.0) 및 jetized-notlin-stdlib-jdk7-1.6.21.jar(jetbrain.kotlin:nablin-stdlib-jdk7:1.6.21)

이는 두 가지 다른 버전의 Kotlin 표준 라이브러리, 특히 "jetified-kotlin-stdlib-1.8.0.jar"와 "jetified-kotlin-stdlib-jdk8-1.6.21.jar" 버전 간에 충돌이 있음을 의미합니다.오류 메시지는 특히 중복 클래스 "kotlin.collections.jdk8"이 있음을 나타냅니다.컬렉션JDK8Kt"가 두 버전 모두에 있습니다.

그리고 해결책은 여기에 두 가지 접근법이 있었지만 저는 이것이 더 쉽다는 것을 알았습니다.android/app/build.gradle update dependencies .

dependencies {
constraints {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
        because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
    }
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
        because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
    }
}

당신은 여러 번 같은 태그를 가지고 있었던 것 같습니다.gradle.properties

    org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    org.gradle.jvmargs=-Xmx4608m

Android Studio 기능을 사용하여 Androidx로 마이그레이션할 때 이 문제가 발생했지만 처음에는 마이그레이션이 성공하지 못했기 때문에 컴파일할 때마다 이 문제가 발생했습니다.

이 문제를 해결하기 위해 다음을 수행했습니다.

[1] Comment all androidx dependencies in the app bundle.gradle file
[2] Try the Migrate to Androidx. You can see this link in Refactor -> Migrate to Androidx. If the migration was successful, then
[3] Uncomment all androidx dependencies in the app bundle.gradle file

프로젝트를 정리하고 다시 빌드할 수 있습니다. 이 오류가 사라지기를 바랍니다.

저의 경우 앱 레벨 build.gradle 파일에서 이 구현 언더 의존성 섹션을 제거했습니다.

implementation 'com.google.android.gms:play-services-ads:19.2.0'

삭제 또는 주석 달기!!

제 아이오닉 프로젝트에서 저는 라인을 제거해야 했습니다.

cordova.system.library.19=com.google.android.gms:play-services-analytics:11.0.1

빌드를 가져오려면 /message/message/project.properties에서 실행합니다.

동일한 문제를 경험했습니다.이 의존성을 당신의 gradle에 추가합니다.

구현 'com.google.guava: 수신 가능한 미래: 9999.0-비어있는 미래에서 시작하는 미래-구아바 포함'

나의 경우, 나는 별도의 모듈을 만들고 파이어베이스를 가져오고 있었습니다.해당 모듈에 대한 분석이지만 IDE에서 주 모듈에 대한 의존성을 추가하면 중복 클래스가 발견되는 문제가 발생한 것으로 나타났습니다.

의존성을 제거하고 직접 주입하여 문제를 해결했습니다.

도움이 되길 바랍니다.

저도 같은 문제가 있었는데 아래와 같이 해결했습니다.build.gradle의 구현 코드

def lifecycle_version = "2.4.0"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

이 문서에서 확인됨

아마도요../gradlew clean가 있어요.저한테는 효과가 있어요.

implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'

    ***the solution***
----------
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'

저도 같은 문제가 있었는데 아래와 같이 해결했습니다.Android 스튜디오 열기 > 파일 > 캐시 무효화/재시작...

언급URL : https://stackoverflow.com/questions/56716047/execution-failed-for-task-appcheckdebugduplicateclasses-ionic4-android

반응형