':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
위의 파일을 제공하였으니, 추가로 업로드가 필요한 사항이 있으면 알려주시기 바랍니다.
gradle.properties(프로젝트 속성)로 이동합니다.
더하다
android.enableJetifier=true
은 리그고대부의시간은분시▁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
다른 대답을 따름으로써.
단계:
확실하게 확인합니다.
ANDROID_HOME
을 의 경우).cd
의 신의것에.android
디렉토리(아이오닉 프로젝트의 경우)platforms/android
).먼저 아래(해당 콘솔에서)를 실행하여 모든 종속성을 파일에 나열합니다.
./gradlew :app:dependencies > my-list.txt
변경 참고 사항
:app
다른 Gradle 모듈의 이름을 가진 부품(위에서 작동하지 않는 경우).다음과 같은 모듈 이름 목록을 참조하십시오.
./gradlew -q projects
과결열을 .
my-list.txt
파일에 하고 "" "" " " " " " " 를 검색합니다." 를 합니다.androidx
.다음 단계를 수행하는 것을 발견한 경우, 완료되었습니다!(이 단계를 반복할 필요가 없습니다).
또는 와 같이 줄 끝에 ->가 표시될 때까지 위로 스크롤합니다. 이는 버전이 자동으로 해결되었음을 의미합니다(+로 인해 사용자가 지정한 것보다 높은 값으로).
따라서 버전을 수동으로 아래로 설정합니다.
- 가능하면 프로젝트에서 + 기호를 찾아 특정 버전으로 바꿉니다.
- 또는 아래에 언급된 것처럼 종속성의 특정 버전을 강제로 적용합니다.
마지막으로 위의 단계를 반복합니다(단, 해당 콘솔을 닫지 않은 한 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
이 플래그가 다음으로 설정된 경우true
Android 플러그인은 지원 라이브러리 대신 적절한 AndroidX 라이브러리를 사용합니다.는 깃은발입니다.false
기본적으로 지정되지 않은 경우
android.enableJetifier
이 플래그가 다음으로 설정된 경우true
Android 플러그인은 기존 타사 라이브러리의 바이너리를 다시 작성하여 AndroidX 종속성을 사용하도록 자동으로 마이그레이션합니다.는 깃은발입니다.false
기본적으로 지정되지 않은 경우
저는 같은 문제를 발견했고 저의 해결책은 다음과 같습니다.
gradle.properties 파일로 이동합니다.
다음 두 줄을 추가합니다.
android.useAndroidX=true android.enableJetifier=true
프로젝트를 다시 빌드합니다.
바로 그겁니다.
참고: 프로젝트에 이미 표시된 경우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
'programing' 카테고리의 다른 글
웹 앱에서 새로운 Firebase Analytics 기능을 사용하려면 어떻게 해야 합니까? (0) | 2023.06.06 |
---|---|
숫자가 정수인지 확인합니다. (0) | 2023.06.06 |
ggplot2에서 글꼴 변경 (0) | 2023.06.06 |
판다 데이터 프레임 열 dtype 할당 (0) | 2023.06.06 |
Python: __init__ 내에서 예외를 제기하는 것은 나쁜 형식입니까? (0) | 2023.06.06 |