개발/Android
안드로이드 Proto 설정 시 오류
귀염둥이 팡무
2023. 8. 14. 17:44
오랜만에 Proto Datastore를 사용하려고 하니 2가지 오류가 발생하였습니다. Plugin 적용하는 부분에서 아래의 오류가 발생하였습니다.
Could not get unknown property 'source' for generate-proto-generateDebugProto of type org.gradle.api.internal.file.DefaultSourceDirectorySet.
실수가 있나하여 공식 문서, Codelab을 참고하여 시도하였지만 변화가 없었습니다.
여기저기 찾아보니 스택오버플로우에서 관련 내용을 찾을 수 있었습니다.
해결 방법은 간단합니다. 코드랩에 안내된 0.8.17
버전 대신 0.9.1
을 사용하면 됩니다...
id("com.google.protobuf") version "0.9.1" // Codelab에 표기된 0.8.7 대신 0.9.1으로 변경
만약 저처럼 Codelab을 따라하신 분이라면 위의 오류를 해결 후 Proto 컴파일(rebuild) 시 artifact를 찾을 수 없다는 오류를 만나보실 수 있을겁니다.
Execution failed for task ':app:generateDebugProto'.
> Could not resolve all files for configuration ':app:protobufToolsLocator_protoc'.
> Could not find com.google.protobuf:protoc:21.7.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/google/protobuf/protoc/21.7/protoc-21.7.pom
- https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/21.7/protoc-21.7.pom
Required by:
project :app
Codelab에서는 21.7
을 사용하고 있어 그대로 적용하였는데 또 안되더라구요... 마찬가지로 여기저기 찾아보니 다른 버전을 사용하라고 합니다. 버전을 바꿔줍시다...
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.19.4" // Codelab에서는 21.7으로 표기됨...
}
generateProtoTasks {
all().forEach { task ->
task.builtins {
id("java") {
option("lite")
}
}
}
}
}
이후 다시 sync후 rebuild 하면 정상적으로 클래스가 생성됩니다.
무언가 허무하군요...