local.properties 파일은 안드로이드 프로젝트에서 사용되는 설정 파일입니다.

github에 올릴 때 보안이 필요한 정보(token or key) 노출을 하지 않기 위해서 local.properties를 사용하는데 원리는 다음과 같다. (참고로 local.properties 파일은 .gitignore 파일에 github에 업로드 되지 않도록 선언해야 하며 기본적으로 /local.properties 선언되어 있다. 또한 BuildConfig.java가 생성되는 bulid폴더도 .gitignore에 정의되어 있어야 하며 기본으로 정의되어 있다.)

  • 안드로이드 프로젝트를 빌드할 때 Gradle 빌드 시스템에 의해 local.properties 파일을 load하여 BuildConfig(java 파일임 ) 만들어 관련 property 값을 field로 추가해 놓는다.
  • 즉 java파일을 자동으로 하나 만들어 field값으로 추가한다.
  • 관련 사항이 build.gradel 파일에 정의 되어야 한다는 뜻이다.
  • field 는 public static final로 되어 있어서 객체를 생성하지 않고도 아래 처럼 바로 사용 할 수 있다.
BuildConfig.필드명

사용법

# BuildConfig.java 파일을 만드는데 사용될 걸로 보이는 SDK
sdk.dir=C\:\\Users\\USER_NAME\\AppData\\Local\\Android\\Sdk
api.key="API키 값"
  • build.gradle 수정
buildFeatures {
		buildConfig true // 사용자 정의 BuildConfig 필드를 활성화
}

defaultConfig {
    applicationId "net.creamtech.naramarketalarmi"
    minSdk 24
    targetSdk 33
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    def Properties properties = new Properties()
		// property load
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    buildConfigField "String", "WORK_SERVER", properties["WORK_SERVER"]
}
  • BuildConfig.java 파일 경로
  • build/generated/source/buildConfig/debug/com/yourpackage/ (또는 release 폴더)

  • 사용코드
String workServer = BuildConfig.WORK_SERVER;

'Android' 카테고리의 다른 글

안드로이드 스튜디오 Java 디버깅 오류  (1) 2023.10.16
Lombok 과 Java Version  (0) 2023.10.16
프로젝트 생성시 템플릿설정  (0) 2023.10.14

안드로이드로 머 하나 개발해 보고 싶어서 뚱땅거리는데,, 별의별 에러를 다 만나는것 같다.

 

에러메세지

A problem occurred configuring project ':app'. > Could not create task ':app:Test.main()'. > SourceSet with name 'main' not found.

 

프로젝트에 이런 폴더가 있었던가?

.idea -> gradle.xml

 

한줄 추가

<option name="delegatedBuild" value="false" />

     <GradleProjectSettings>
        <option name="delegatedBuild" value="false" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/app" />
          </set>
        </option>
      </GradleProjectSettings>

 

 

'Android' 카테고리의 다른 글

local.properties 사용하기  (0) 2023.10.25
Lombok 과 Java Version  (0) 2023.10.16
프로젝트 생성시 템플릿설정  (0) 2023.10.14

Lombok이 의외로 자바버전을 상당히 많이 타는것 같다.

Lombok Changelog에 Lombok 버전별 지원되는 Java버전이 상세히 나와있다.

 

IntelliJ에서 lombok 사용시 문제되는게 사용자가 프로그램 상에서 lombok을 import 시키면 IntelliJ가 자바버전에 맞게 build.gradle의 dependencies에 추가하거나 아니면 추가해야 한다고 에러를 발생시켜야 하는데 자기 임의로(lombok 최신 거의 현재 최신버전은 1.18.30 dependencies에 추가한 버전은 1.18.28) 추가한다는 것이다.

사용자는 프로그램상에서는 문제없는듯 보이지만 builder시 get, set이 정의 되지 않았다는 에러를 보게된다. 

 

 

Java 17 기준

build.gradle > dependencies

 

compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'

https://projectlombok.org/changelog

 

changelog

 

projectlombok.org

 

'Android' 카테고리의 다른 글

local.properties 사용하기  (0) 2023.10.25
안드로이드 스튜디오 Java 디버깅 오류  (1) 2023.10.16
프로젝트 생성시 템플릿설정  (0) 2023.10.14

프로젝트 생성시 몇 개의 템플릿이 있는데 ‘Empty Views Activity’로 생성.

심플해서 이해하기 쉽고, 기본 폴더들이 생성되어 있어 프로젝트 구성을 이해하는데 도움을 준다.

Build configuration language는 ‘Groovy DSL(build.gradle)를 선택 인터넷 검색시 가장 많이 노출되는 방법으로 보인다.

'Android' 카테고리의 다른 글

local.properties 사용하기  (0) 2023.10.25
안드로이드 스튜디오 Java 디버깅 오류  (1) 2023.10.16
Lombok 과 Java Version  (0) 2023.10.16

+ Recent posts