[android] Gradle buildConfigField BuildConfig가 기호를 확인할 수 없습니다.

내 Android 애플리케이션을 빌드하기 위해 Gradle을 사용하고 있습니다. 빌드 유형 (릴리스 또는 디버그)에 따라 일부 플래그를 사용하려고합니다.

내 Gradle 파일은 다음과 같습니다.

android {
    buildTypes {
        debug {
            buildConfigField 'boolean', 'PREPROD', 'true'
            buildConfigField 'boolean', 'STAGING', 'false'
        }

        release {
            buildConfigField 'boolean', 'PREPROD', 'false'
            buildConfigField 'boolean', 'STAGING', 'false'
        }
    }
}

전화를 걸 BuildConfig.PREPROD거나 BuildConfig.STAGING“Cannot resolve symbol”오류가 발생합니다. Gradle 동기화에 성공하여이 기능을 사용하기 위해 몇 가지 단계를 잊어 버렸는지 모르겠습니까?

생성 된 BuildConfig.java파일은 다음과 같습니다 ( build/source/buildConfig/debug/com.example.myapp).

package com.example.myapp;

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String PACKAGE_NAME = "com.example.myapp";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 400;
  public static final String VERSION_NAME = "";
}



답변

파일이 올바른 BuildConfig 클래스를 가져 오는지 확인하십시오 . 때로는 다른 프로젝트 라이브러리 또는 모듈이있는 경우 잘못된 buildConfig를 가져올 수 있습니다. 가져 오기가이 com.project.app.BuildConfig 와 같은지 확인하십시오 . 나는 같은 문제를 겪고 있었고 문제는 이것이 누군가를 도울 수 있기를 바랍니다.


답변

나는 같은 버그를 얻고 있었다. 저장 오른쪽에있는 동기화 를 클릭하십시오 . gradle sync 후에 그렇게하십시오 .


답변

내가 String 필드를 제대로 선언하지 않았기 때문에 나에게 일어났습니다.

이스케이프 캐릭터를 잊어 버렸습니다. 에서 변경 :

buildConfigField "String", "FOO", "foo"

…에

buildConfigField "String", "FOO", "\"foo\""

문제를 해결했습니다.


답변

gradle 빌드 파일의 변경 사항은 상단의 노란색 “지금 동기화”막대를 클릭하더라도 BuildConfig 클래스의 생성을 새로 고치지 않습니다. 완전히 정리하면이 파일이 생성됩니다.

Android Studio : 빌드-> 프로젝트 정리


답변

매개 변수를 defaultConfig에도 추가해야합니다. 매개 변수가 특정 buildVariant에 정의되어있는 동안 기본 buildVarient를 실행 중일 수 있습니다.

빌드 gradle 파일에서 다음을 사용하십시오.

 defaultConfig {
        buildConfigField('String' , 'myParameter', 'someValue')
    }

그런 다음 코드에서 다음을 사용하십시오.

String myParam= BuildConfig.myParameter;

이것이 도움이되기를 바랍니다, MA 🙂


답변

buildConfigField에 액세스하려면 먼저 원하는 빌드 변형을 선택해야합니다.

여기에 이미지 설명 입력


답변

나에게도 같은 일이 발생했으며 프로젝트 루트에서 이것을 실행할 때 수정되었습니다.

./gradlew assembleDebug