아래 오류는 안드로이드 앱을 개발하면서 자주 만나게 되는 문제인 것 같아요!
개발하면서 이런 오류를 자주 만나시죠? 😅
Error
A problem occurred evaluating project ':app'.
해당 오류는 프로젝트의 build.gradle
파일에서 발생한 것 같아요.
오류가 발생한 부분을 살펴보면 좋을 것 같아요.
에러 발생 코드
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.app"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
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'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.google.firebase:firebase-firestore:20.2.0'
}
apply plugin: 'com.google.gms.google-services'
위의 코드는 잘 작동하지 않아요. 왜 그럴까요? 😅
해당 코드를 작동할 때 나오는 로그에요ㅎㅎ 같이 살펴볼까요?
로그
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\Development\Projects\MyProjects\app\android\app\build.gradle' line: 24
* What went wrong:
A problem occurred evaluating project ':app'.
> ASCII
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:204)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:209)
at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:61)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.
위의 로그를 자세히 읽어보면 몇 가지 해결 방법을 추천해 주고 있네요~~ 😇
우선, 이 에러가 발생한 원인부터 살펴봐요.
원인
build.gradle
파일에서 오류가 발생한 것 같아요. 로그를 읽어보면 24번째 줄에서 문제가 발생했다고 나와요.
해당 코드를 살펴보면 ASCII 문자로 인해 오류가 발생한 것 같아요.
그럼 어떻게 해결해야 할까요?
몇 가지 해결책을 알려드릴게요 😎
해결책
- 24번째 줄의 코드를 확인해보세요. ASCII 문자가 포함되어 있는지 확인해야 해요. 만약 ASCII 문자가 포함되어 있다면 해당 문자를 수정하거나 삭제해야 해요.
flutter.sdk
와flutter.versionCode
,flutter.versionName
의 값을 확인해보세요. 정상적인 값으로 설정되어 있는지 확인해야 해요.flutter.gradle
파일이 제대로 로드되고 있는지 확인해보세요. 파일 경로가 정확하게 설정되어 있는지 확인해야 해요.
결론
이 문제는 안드로이드 앱을 개발할 때 build.gradle
파일에서 발생하는 문제인 것 같아요! 😅 이러한 오류는 파일 내에 ASCII 문자가 포함되어 있거나 파일 경로가 잘못 설정되어 있는 경우에 발생할 수 있어요.
해당 코드를 주의깊게 살펴보고 ASCII 문자를 수정하거나 삭제하면 문제가 해결될 수 있어요!
또는 minsdkversion 때문입니다!
앞으로.. 예방법!
안드로이드 앱을 개발할 때 build.gradle
파일을 작성할 때는 ASCII 문자가 포함되지 않도록 주의해야 해요. 또한, 파일 경로를 정확하게 설정해야 오류가 발생하지 않아요.