Jisoo.

기술블로그

Flutter image_gallery_saver 패키지 빌드 에러 해결방법


썸네일

Flutter image_gallery_saver 패키지 빌드 에러 해결방법

image_gallery_saver 패키지 빌드 에러 시 발생하는 에러를 해결해 봅시다.


💡 image_gallery_saver

image_gallery_saver는 flutter에서 미디어 파일을 갤러리에 저장하는 기능을 제공하는 패키지입니다.

그러나 현재(2025. 01. 16) 해당 패키지를 추가하여 빌드할 경우 다음 에러가 발생하며 빌드가 되지 않습니다.

1Incorrect package="com.example.imagegallerysaver" found in source AndroidManifest.xml: /Users/amuz/Desktop/image_gallery_saver-2.0.3/android/src/main/AndroidManifest.xml. 2 3Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported. 4 5Recommendation: remove package="com.example.imagegallerysaver" from the source AndroidManifest.xml: /Users/amuz/Desktop/image_gallery_saver-2.0.3/android/src/main/AndroidManifest.xml. 6 7FAILURE: Build failed with an exception. 8 9* What went wrong: 10 11Execution failed for task ':image_gallery_saver:processDebugManifest'. 12 13> A failure occurred while executing com.android.build.gradle.tasks.ProcessLibraryManifest$ProcessLibWorkAction 14 15 > Incorrect package="com.example.imagegallerysaver" found in source AndroidManifest.xml: /Users/amuz/Desktop/image_gallery_saver-2.0.3/android/src/main/AndroidManifest.xml. 16 17 Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported. 18 19 Recommendation: remove package="com.example.imagegallerysaver" from the source AndroidManifest.xml: /Users/amuz/Desktop/image_gallery_saver-2.0.3/android/src/main/AndroidManifest.xml. 20 21BUILD FAILED in 866ms 22 23Error: Gradle task assembleDebug failed with exit code 1

최신 Android Gradle 플러그인의 문법이 변경되면서 더 이상 package 옵션을 제공하지 않기 때문에 발생하는 에러입니다.

따라서 해당 패키지의 AndroidManifest.xml에서 해당 옵션을namespace로 변경해야합니다.


💡 해결 방법

image_gallery_saver의 디렉토리는 아래 경로에 존재합니다.

1/.../.pub-cache/hosted/pub.dev/image_gallery_saver-2.0.3

해당 경로의 android/src/main/AndroidManifest.xml 에서 packageandroid:namespace로 변경합니다.

1# 변경 전 2<manifest 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 package="com.example.imagegallerysaver"> 5</manifest> 6 7# 변경 후 8<manifest 9 xmlns:android="http://schemas.android.com/apk/res/android" 10 android:namespace="com.example.imagegallerysaver"> 11</manifest>

- compileDebugKotlin 에러

XML 변경 후에도 다음 에러가 발생할 수 있습니다.

해당 에러는 Java와 Kotlin의 JVM 타깃 버전 불일치로 인해 발생하는 문제입니다.

1FAILURE: Build failed with an exception. 2 3* What went wrong: 4 5Execution failed for task ':image_gallery_saver:compileDebugKotlin'. 6 7> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. 8 9 Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

따라서 Kotlin 컴파일 버전을 현재 사용 중인 자바 버전에 맞게 버전을 지정해줘야 합니다.

android/build.gradle 파일을 수정하여 자바 버전을 명시할 수 있습니다.

저는 JAVA 17으로 설정하였습니다만 개발 환경에 맞게 변경해야합니다.

1group 'com.example.imagegallerysaver' 2version '1.0-SNAPSHOT' 3 4buildscript { 5 ext.kotlin_version = '1.7.10' 6 repositories { 7 google() 8 mavenCentral() 9 } 10 11 dependencies { 12 classpath 'com.android.tools.build:gradle:7.3.0' 13 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 14 } 15} 16 17rootProject.allprojects { 18 repositories { 19 google() 20 mavenCentral() 21 } 22} 23 24apply plugin: 'com.android.library' 25apply plugin: 'kotlin-android' 26 27android { 28 namespace = "com.example.image_gallery_saver" 29 30 // SDK 버전 지정 31 compileSdkVersion 30 32 33 // 자바 버전 지정 34 compileOptions { 35 sourceCompatibility = JavaVersion.VERSION_17 36 targetCompatibility = JavaVersion.VERSION_17 37 } 38 39 // 코틀린 자바 버전 지정 40 kotlinOptions { 41 jvmTarget = JavaVersion.VERSION_17 42 } 43 44 sourceSets { 45 main.java.srcDirs += 'src/main/kotlin' 46 } 47 defaultConfig { 48 minSdkVersion 16 49 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 50 } 51 lintOptions { 52 disable 'InvalidPackage' 53 } 54} 55 56dependencies { 57 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 58}

- 전체 코드

https://github.com/JisooOvO/image_gallery_saver_fixed_gradle

Flutter 카메라 사진 찍고 저장하기
Flutter path_provider 패키지 정리

1


Flutter 시리즈의 다른 포스트

썸네일-0

Flutter path_provider 패키지 정리

path_provider 패키지에 대해 알아봅시다.


2025년 1월 17일

썸네일-1

Flutter 카메라 사진 찍고 저장하기

플러터로 카메라 앱을 만들어봅시다.


2025년 1월 14일