Android Studio 0.4.0으로 만든 간단한 Android 프로젝트가 있습니다. Gradle 1.9 및 Gradle Android Plugin 0.7을 사용합니다. 어제 Gradle 빌드 스크립트에 Jake Wharton의 ButterKnife 라이브러리 를 추가했습니다 .
dependencies {
compile 'com.android.support:support-v4:19.0.0'
compile 'com.android.support:appcompat-v7:19.0.0'
// Butterknife
compile 'com.jakewharton:butterknife:4.0.1'
}
Android Studio에서 애플리케이션을 실행하면 빌드가 제대로 실행되고 내 기기에서 올바르게 실행됩니다. 그러나 명령 줄에서 시도 gradle build
하면 빌드가 실패합니다. 내 린트 보고서의 일부는 다음과 같습니다.
InvalidPackage: Package not included in Android
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
아마도 내가 뭔가를 놓치고 있지만 터미널 블록에서 프로젝트를 빌드 할 수 없기 때문에 Android 프로젝트에 대한 CI의 가능성이 있습니다.
어떤 도움이라도 좋을 것입니다.
답변
와 0.7.0 , 그러나 제대로 항상 작동하지 않습니다 린트에 대한 확장 지원이 제공됩니다. (예 : 버터 나이프 라이브러리)
해결책은 발견 된 Lint 오류에서 빌드 중단을 비활성화하는 것입니다.
https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7 에서 영감을 얻었습니다.
(토론 : https://plus.google.com/+AndroidDevelopers/posts/ersS6fMLxw1 )
android {
// your build config
defaultConfig { ... }
signingConfigs { ... }
compileOptions { ... }
buildTypes { ... }
// This is important, it will run lint checks but won't abort build
lintOptions {
abortOnError false
}
}
특정 Lint 규칙 만 비활성화하고 다른 규칙에서 빌드 실패를 유지해야하는 경우 다음을 사용하십시오.
/*
* Use only 'disable' or only 'enable', those configurations exclude each other
*/
android {
lintOptions {
// use this line to check all rules except those listed
disable 'RuleToDisable', 'SecondRuleToDisable'
// use this line to check just listed rules
enable 'FirstRuleToCheck', 'LastRuleToCheck'
}
}
답변
문제 abortOnError false
가 해결되지 않으면 시도해 볼 수 있습니다.
lintOptions {
checkReleaseBuilds false
}
답변
여기에서 적절한 옵션을 선택할 수 있습니다.
android {
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
// if true, emit full/absolute paths to files with errors (true by default)
//absolutePaths true
// if true, check all issues, including those that are off by default
checkAllWarnings true
// if true, treat all warnings as errors
warningsAsErrors true
// turn off checking the given issue id's
disable 'TypographyFractions','TypographyQuotes'
// turn on the given issue id's
enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
// check *only* the given issue id's
check 'NewApi', 'InlinedApi'
// if true, don't include source code lines in the error output
noLines true
// if true, show all locations for an error, do not truncate lists, etc.
showAll true
// Fallback lint configuration (default severities, etc.)
lintConfig file("default-lint.xml")
// if true, generate a text report of issues (false by default)
textReport true
// location to write the output; can be a file or 'stdout'
textOutput 'stdout'
// if true, generate an XML report for use by for example Jenkins
xmlReport false
// file to write report to (if not specified, defaults to lint-results.xml)
xmlOutput file("lint-report.xml")
// if true, generate an HTML report (with issue explanations, sourcecode, etc)
htmlReport true
// optional path to report (default will be lint-results.html in the builddir)
htmlOutput file("lint-report.html")
// set to true to have all release builds run lint on issues with severity=fatal
// and abort the build (controlled by abortOnError above) if fatal issues are found
checkReleaseBuilds true
// Set the severity of the given issues to fatal (which means they will be
// checked during release builds (even if the lint target is not included)
fatal 'NewApi', 'InlineApi'
// Set the severity of the given issues to error
error 'Wakelock', 'TextViewEdits'
// Set the severity of the given issues to warning
warning 'ResourceAsColor'
// Set the severity of the given issues to ignore (same as disabling the check)
ignore 'TypographyQuotes'
}
}
답변
서명 된 APK를 생성 할 때만 발생하는 Android Studio에서 일부 Lint 오류가 발생했습니다.
그것을 피하기 위해 다음을 추가했습니다. build.gradle
android {
lintOptions {
checkReleaseBuilds false
}
}
답변
build.gradle 파일에 다음 행을 추가하십시오.
android {
lintOptions {
abortOnError false
}
}
그런 다음 프로젝트를 청소하십시오.
답변
“abortInError false”옵션을 피하려면 build / lint-results-release-fatal.html 파일을 살펴보십시오. 다음은 보푸라기가 감지 한 오류입니다.
나는 이것이 누군가를 도울 수 있기를 바랍니다!
답변
Android Studio v1.2에서는 수정 방법을 알려줍니다.