Android 스튜디오에서 기존 Android 프로젝트를 열려고하는데 gradle이 오류없이 앱을 빌드 할 수 없습니다.
Android Studio가 계속 던지는 오류
Error:(74, 1) A problem occurred evaluating project ':app'.
> Could not find method implementation() for arguments
[com.android.support:appcompat-v7:26.0.0] on object of type
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
내 문제를 이해하는 데 도움이 될 수있는 build.gradle의 내 코드 내 종속성
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
// google & support
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:cardview-v7:$supportVersion"
implementation "com.android.support:recyclerview-v7:$supportVersion"
implementation "com.android.support:design:$supportVersion"
implementation "com.android.support:palette-v7:$supportVersion"
implementation "com.android.support:customtabs:$supportVersion"
implementation "com.android.support:support-v4:$supportVersion"
implementation 'com.google.android.exoplayer:exoplayer:r2.0.4'
// utils
implementation 'com.github.bumptech.glide:glide:4.0.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
implementation 'com.koushikdutta.ion:ion:2.1.7'
implementation 'com.github.Commit451:bypasses:1.0.4'
implementation 'com.jakewharton:butterknife:8.8.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.0'
implementation 'com.drewnoakes:metadata-extractor:2.9.1'
implementation "com.orhanobut:hawk:2.0.1"
}
문제 해결을 도와주세요
답변
답변
Gradle 버전이 3.*.*
“구현”을 사용하기 전에 이상 .
종속성에서 프로젝트 수준 Gradle 파일을 엽니 다.
dependencies{
classpath 'com.android.tools.build:gradle:3.1.2'
}
‘gradle-wrapper.properties’파일을 열고 다음을 설정합니다 distributionUrl
.
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
또는 최신 버전.
프로젝트를 동기화하십시오. 나는 이것이 당신의 문제를 해결하기를 바랍니다.
답변
당신은 적어도 사용할 필요가 Gradle을 3.4 사용할 수 있도록 이상을 implementation
. compile
빌드 시간이 느려질 수 있으므로 더 이상 사용되지 않는을 계속 사용하지 않는 것이 좋습니다 . 자세한 내용은 공식 Android 개발자 가이드를 참조하세요.
모듈이 구현 종속성을 구성 할 때 Gradle은 모듈이 컴파일 타임에 다른 모듈에 종속성을 유출하고 싶지 않다는 것을 알립니다. 즉, 종속성은 런타임에만 다른 모듈에서 사용할 수 있습니다. API 또는 컴파일 대신이 종속성 구성을 사용하면 빌드 시스템이 재 컴파일해야하는 프로젝트의 양이 줄어들 기 때문에 빌드 시간이 크게 향상 될 수 있습니다. 예를 들어 구현 종속성이 API를 변경하면 Gradle은 해당 종속성과 이에 직접 의존하는 모듈 만 다시 컴파일합니다. 대부분의 앱 및 테스트 모듈은이 구성을 사용해야합니다.
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations
업데이트 : compile
2018 년 말에 제거 될 예정이므로 implementation
지금 만 사용하십시오 .
경고 : ‘컴파일’구성은 더 이상 사용되지 않으며 ‘구현’으로 대체되었습니다. 2018 년 말에 제거됩니다.
답변
android / build.gradle이 아닌 android / app / build.gradle에 이러한 종속성을 추가하고 있는지 확인하십시오.
답변
플러그인 적용 변경 : ‘java’플러그인 적용 : ‘java-library’
답변
너무 우스꽝 스럽지만 누군가 나 같은 상황에 빠질 경우를 대비하여 내 경험을 공유하고 싶습니다.
변경했는지 확인하십시오 : compileSdkVersion
-> implementationSdkVersion
실수로
답변
귀하의 코드
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
교체
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
