서명 된 APK 생성시 ': app : lintVitalRelease'오류


238

Google Play에서 APK를 업로드하려고하는데 "디버거 블 APK를 업로드했습니다. 보안상의 이유로 Google Play에 게시하기 전에 디버깅을 비활성화해야합니다. 디버그 가능한 APK에 대해 자세히 알아보십시오."라는 오류 메시지가 표시됩니다.

그런 다음 android:debuggable="false"매니페스트를 작성하고 다시 시도했습니다. 동일한 오류가 발생하여 모듈에서 빌드 변형을 설정하여 apk를 해제하고 다시 APK 생성을 시도했지만 이번에는이 오류가 발생합니다.

Error:Gradle: Execution failed for task ':app:lintVitalRelease'.
Lint found fatal errors while assembling a release target.
  To proceed, either fix the issues identified by lint, or modify your build script as follows:
  ...
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }
  ...

38
모든 답변은 오류를 확인하지 않거나 오류를 중단하지 않는 것처럼 보이지만 문제를 찾아서 수정하는 것은 어떻습니까 ??? Android Studio는 무엇이 잘못되었는지에 대한 정보를 표시하지 않습니다 ... 오류를 무시하지 않고이 문제를 해결할 수있는 사람이 있습니까?
Federico Alvarez

stackoverflow.com/questions/43203415/… 이 페이지의 답변으로 가십시오. 나를위한 작업
Halim Bezek

5
"하지만 문제를 찾아서 수정하는 것은 어떻습니까?" 나는 똑같이 생각했지만 항상 하단 표시 줄의 '검사 결과'탭과 폴더 내용을 빌드 /보고했습니다. 확인해주십시오.
PravyNandas

1
빌드 / 보고서 폴더는 매우 유용한 팁입니다. 나에게 문제는 번역이 누락되었고 html 보고서에서 분명했다.
Pete

오류 Google에서 솔루션을 제공하는 이유는 무엇입니까? 처음에 오류뿐만 아니라 오류 메시지를 이해하려고
Mafujul

답변:


393

보푸라기 수표를 끄지 않는 것이 좋습니다. 이유가 있습니다. 대신 오류가 무엇인지 확인하고 수정하십시오.

오류 보고서가에 저장됩니다 [app module]/build/reports/lint-results-yourBuildName-fatal.html. 브라우저에서이 파일을 열어 오류에 대해 읽을 수 있습니다.

Gradle이 오류 보고서가 생성되는 위치를 좀 더 명확하게 만들 수 있다면 좋을 것입니다.


8
동의하면 오류를 수정하는 것이 훨씬 좋습니다! gradlew lintIDE를 사용하거나 IDE를 통해 수동으로 보고서를 생성 할 수도 있습니다. developer.android.com/studio/write/lint
Anigif

3
예, 올바른 방향입니다. 또한 html에 오류가 잘 설명되어 있고 오류가 제대로 해결되었으므로 쉽게 수정했습니다!
CodeToLife

6
네, 그것은 말할 때 매우 성가 fix the issues identified by lint
시지만

7
이것은 정답이어야합니다. 보푸라기를 비활성화하는 것은 좋은 해결책이 아닙니다.
slhddn

1
내 경우에는 오류가 발생 MissingTranslation: Incomplete translation했습니다-Google에 대한 질문 : Android Studio에 표시되지 않는 이유는 무엇입니까 ?? 그것은을 불리는 integrated development environment이유.
누군가 어딘가에

187

나는이 문제가 있었고 다음을 추가하여 해결했다.

lintOptions { 

    checkReleaseBuilds false

}

섹션 내 build.gradle파일에 android{ }.       


이것은 응용 프로그램에 다른 부작용이 없습니까?
committedandroider

10
보푸라기를 끄더라도 응용 프로그램에 부작용이 발생하지 않습니다. Lint는 코드 분석 도구이며 디버그 가능 속성을 설정하여 여기에 언급 된 오류는 build / outputs 폴더의 "lint-results-release-fatal.html"파일에서 자세히 볼 수 있습니다.
error1337

내 최상위 build.grade 파일에 android {} 섹션을 추가하는 데 문제가있었습니다. 그래서 다른 조언을 따르고 이것을 앱 레벨의 내 build.grade 파일에 추가했습니다.
Martin Zaske

13
경고 : 이것은 단순히 보푸라기 검사를 비활성화합니다. 오류를 비활성화하기 전에 최소한 오류를 살펴 보는 것이 좋습니다. 필자의 경우 특정 언어의 문자열이 누락되었습니다. "분석"-> "코드 검사 .."
Markus

2
나는 이것을 권장하지 않습니다. 필자의 경우 이러한 경고를 무시하면 리소스 손실로 인해 런타임에 충돌이 발생할 수 있습니다. lint-results-release-fatal.html을 검토하고 모든 문제를 해결하십시오.
Paweł Nadolski

76

정확한 오류를 찾으려면 프로젝트의 /app/build/reports/lint-results-release-fatal.html (또는 .xml) 경로로 이동하십시오. 가장 쉬운 방법은 xml 파일로 이동하면 Java 클래스 또는 xml 파일에서 오류의 위치를 ​​포함하여 오류가 무엇인지 정확하게 보여줍니다. 보푸라기 검사를 해제하는 것은 좋은 생각이 아닙니다. 이유가 있습니다. 대신 다음으로 이동하십시오.

    /app/build/reports/lint-results-release-fatal.html or 
    /app/build/reports/lint-results-release-fatal.xml

그것을 고치십시오.


2
이것은 오류를 무시하고 계속 진행하는 것보다 낫습니다. HTML 파일은 문제를 쉽게 이해할 수 있습니다.
존 팡

/app/build/reports/lint-results-release-fatal.xml에서 문제를 발견했습니다. 감사합니다
Bukunmi

생명의 은인. xml 파일을 확인한 후 말 그대로 몇 초 만에 문제가 해결되었습니다.
로마 Rozenshtein

50

모든 string.xml파일 에 모든 번역을 정의했는지 확인하십시오


1
그건 내 문제였다 .... 누락 된 번역 추가 문제 감사를 해결
Hatem Badawi

나를 위해 일부 번역이 누락되었습니다.
Himanshu Rawat

40

문제가있는 곳을 찾으려고 할 때 /app/build/reports/lint-results-release-fatal.html (또는 .xml) 프로젝트 경로에서 내 것을 발견했습니다 .

도움이 되었기를 바랍니다!


둘 다 파일이 비어 있습니다.
m9m9m

35

안드로이드 스튜디오에서 서명 된 APK를 만들 때 동일한 문제에 직면했습니다. 안드로이드 {} 안의 build.gradle 파일 에서 약간의 변화를 변경했습니다.

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

이것은 나를 위해 일했습니다. 나는 비슷한 문제가 있었다. 태스크 ': app : lint *** Release'에 대한 실행이 실패했습니다. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
넬슨 라미레즈

24

오류 정보를 찾는 방법

Anylyze-> 코드 검사

여기에 이미지 설명을 입력하십시오

그런 다음 검사 결과에 오류가 표시됩니다

여기에 이미지 설명을 입력하십시오

내 경우에는 Google IAP의 해결되지 않은 javadoc 참조로 인해 빌드가 실패했습니다 😐


3
이것이 정답입니다. 보푸라기 검사 비활성화를 제안한 모든 사람들에게 이는 해결 방법입니다. 오류를 건너 뛰는 것보다 여전히 수정하는 것이 좋습니다. 보푸라기 검사 건너 뛰기는 매우 특정한 경우에만 수행해야하며 항상 그렇지는 않습니다. 또한, 거의 또는 전혀 수행하지 않아야합니다.
Archie G. Quiñones 2016 년

20
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }

18

gradle 빌드 탭에서 조립을 선택하는 자세한 정보를 찾을 수 있습니다.여기에 이미지 설명을 입력하십시오


5
이것은 실제 답변입니다. 응용 프로그램에서 조립 창으로 이동하여 두 번 클릭하여 실행하십시오 .Android 스튜디오는 정확히 무엇이 나왔는지 알려줍니다.
와지 드 알리

1
세상에 ... 고마워! 그 하나는 많은 시간을 절약했습니다! : D
thinklinux

내가 가지고, lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false }나는 그것을 추가하지만 난 릴리스 만들 때마다 동일한 오류가 발생했습니다
올리버 D

11

app.gradle 파일에서 다음 3 줄을 시도하십시오.

android {
lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

@justColbs 다른 문제가 발생할 수 있습니다. 로그 고양이로 문제를 게시하면 제대로 안내 할 수 있습니다.
Rehan Sarwar

8

내 문제는 번역이 누락되었습니다. 필요하지 않아 번역되지 않은 settings.xml이 있었으므로 문자열에 "translatable ="false "를 추가해야했습니다.

이 문자열은 번역이 필요하지 않습니다


8

안녕하세요 여러분, 저에게 도움이되었습니다. 다음과 같이 BuildTypes를 수정하십시오.

buildTypes {
        release {
            android {
                lintOptions {
                    checkReleaseBuilds false
                    // Or, if you prefer, you can continue to check for errors in release builds,
                    // but continue the build even when errors are found:
                    abortOnError false
                }
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

7

여기에서 오류 이유를 찾아 수정하십시오.

yourProject/app/build/reports/lint-results-release-fatal.xml

1
정확한 오류를 확인하고 재 인증해야합니다. 감사합니다.
Asesha George

TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.내 로그에서 발견 했습니다. 즉 targetSdkVersion25를 설정할 수 없습니다 .
Fruit

6

내 문제는 번역이 누락되었습니다. 필요하지 않아 번역되지 않은 settings.xml이 있었으므로 문자열에 "translatable ="false "를 추가해야했습니다.

<string translatable="false" name="stringname">This string doesn't need translation</string>

4

많은 사람들이 제안했듯이 항상 소스의 오류를 시도하고 수정하는 것이 좋습니다. 린트 생성 파일 확인

/app/build/reports/lint-results-release-fatal.html

파일을 읽으면 오류가 발생한 위치로 안내됩니다. 내 것을 확인하십시오 : 오류는 부적절한 뷰 제약으로 인해 발생했습니다.


4

이 문제 해결 build.gradle (app) 파일에서 이것을 사용하여 기본 Android 내부 {

  buildTypes {
      //  crunchPngs false // or true   when png error
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

3

아래 코드를보십시오

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

3

여기에 이미지 설명을 입력하십시오

이것을 안드로이드 {} build.gradle (Module : App) 안에 추가하십시오

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

2

Windows-> 참조-> Android-> 린트 오류 검사.

틱 실행 전체 오류 .......

여기에 이미지 설명을 입력하십시오


1
매우 예쁘지 만이 창은 어디에서 왔습니까? 안 드 로이드 스튜디오에서 그것을 찾을 수 없습니다 ...
Martin Zaske

2

build.gradle (모듈 : 앱)로 이동

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

1

이 말을 매니페스트에서 모두 제거하면 Eclipse가 즉시 처리합니다.


0

오류에 대한 APK 덮어 쓰기를 생성하기 위해 프로젝트 레벨 gradle 파일에 코드를 추가해야합니다


0

필자의 경우 문제는 Google Play에 필요한 최소 대상 API 수준과 관련이 있습니다. 26 미만으로 설정되었습니다.

최소 대상 API 수준을 26으로 설정하면 문제가 사라졌습니다.


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

위의 코드는 문제를 무시하여 문제를 해결할 수 있지만 앱이 중단 될 수도 있습니다.

좋은 답변은 다음 링크에 있습니다.

서명 된 APK 생성시 오류


-2

android.app 아래에 app.gradle을 추가하면 {

lintOptions {

    quiet true
    abortOnError false
}

}

그것은 일을 얻을 것이다


가능한 경우 점검을 건너 뛰는 대신 보풀과 오류를 수정하는 것이 좋습니다.
Piero
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.