当前位置: 首页 > 知识库问答 >
问题:

gradle构建在lint任务上失败

姚培
2023-03-14

我用android Studio 0.4.0创建了一个简单的android项目。我使用Gradle 1.9和Gradle Android插件0.7。昨天,我在gradle构建脚本中添加了Jake Wharton的Butternife库:

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.

也许我错过了什么,但不能在终端块中构建项目CI为Android项目的可能性。

任何帮助都会很好。

共有1个答案

麻阳
2023-03-14

0.7.0提供了对Lint的扩展支持,然而,它并不总是正常工作。(如白切刀图书馆)

解决方案是在发现的林特错误上禁用中止生成

我的灵感来自https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7

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'
  }
}
 类似资料:
  • 我在一个Java桌面应用程序中使用gradle。 IDE是NetBeans&我想从我的Java类生成一些自动化的JSON。 我实现了3个类(仅POJOs)&试图通过Gradle导入'com.github.reinert',名称:'jjschema',版本:'1.11'。 jjschema将打印java对象的JSON等价物。 然而,gradle并没有解析这些类&也没有下载依赖项。 这是我的gradl

  • 错误: 项目结构: build.gradle(actionbarsherlock) 建筑格拉德尔(vertretungsplan) 设置。格拉德尔 如何修复此错误?

  • 我有一个Android应用程序,当我运行以下命令时,它的构建失败: 以下是我收到的错误:

  • 问题内容: 这是build.gradle 在这里,我使用Gradle Build。()生成签名的APK 。3.构建任务app:processReleaseResources失败。 这是堆栈跟踪: 我被卡在这里任何解决方案如何解决此问题,请帮助我。 问题答案: 经过阅读了很多文章之后,我终于找到了解决这个问题的方法。 此问题是由于sdk工具版本不匹配所致。 build.gradle文件中的目标sdk

  • 我有一个多项目gradle构建,Spring Boot按照默认gradle约定进行结构化。 我目前的项目是(A)将gradle从5. x升级到7.3. x,(B)使用带有Spring Boot的嵌入式Tomcat。 这是一个已经存在很多年的项目,是Spring Boot,但是传统上一直作为一个战争文件部署在Tomcat中。 我已经按照gradle迁移指南将gradle升级到7.3.3,并正确构建了

  • 我有一个JHipster项目,我在build.gradle中添加了对Lombok的依赖: 我为IntelliJ安装了Lombok插件。我已经在IntelliJ中打开了注释处理,我可以在IntelliJ IDE中生成而不出错,但是当我尝试从命令行生成时,会出现生成错误。Gradle似乎没有处理注释,也找不到getter/setter和log声明。项目运行时也不会出现任何错误。 命令行: 错误: 错误