103 votes

gradle l'échec de la construction sur la charpie de la tâche

J'ai un simple projet android que j'ai créé avec Android Studio 0.4.0. J'utilise Gradle 1,9 et Gradpe Android Plugin 0.7. Hier j'ai ajouté Jake de Wharton ButterKnife bibliothèque dans mon script de build gradle:

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'
}

Quand je lance le formulaire de demande d'Android Studio, la génération fonctionne bien et qu'il s'exécute correctement sur mes appareils. Mais quand j'essaie (à partir de la ligne de commande) gradle build l'échec de la construction. Voici une partie de mes peluches rapport:

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.

Je suis peut-être raté quelque chose, mais ne pas être en mesure de construire le projet dans le terminal bloks la possibilité de CI pour Android des projets.

Toute aide serait super. Grâce à des conseils.

146voto

Marek Sebera Points 15987

Avec 0.7.0 il arrive un support étendu pour les Peluches, cependant, il ne fonctionne pas toujours correctement. (Eg. le butterknife de la bibliothèque)

La Solution est de désactiver l'abandon de construire sur trouvé de peluches erreurs

J'ai pris l'inspiration de https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7

(mise en œuvre: https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7/build-system/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java )

(la discussion: 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
  }
}

Et si vous avez besoin de désactiver particulier de la Charpie de la règle et de garder la construire la faute sur les autres, ceci:

/*
 * 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'
  }
}

56voto

panwy Points 61

si "abortOnError faux" ne peut pas résoudre votre problème, vous pouvez essayer cette. lintOptions { checkReleaseBuilds faux }

15voto

Pinhassi Points 4297

J'ai eu quelques peluches erreurs sur Android Studio qui a eu lieu seulement lorsque j'ai généré un signé APK.

Pour éviter cela, j'ai ajouté ce qui suit à bulld.gradle:

android {

lintOptions {
    checkReleaseBuilds false
}
}

11voto

MhmdAljobairi Points 193

je l'ai essayé et trouvé la solution

ajouter ces lignes sur le gradle fichier pour votre bibliothèque

android { lintOptions { abortOnError faux } }

et le nettoyage de votre projet alors :D

8voto

Daniel S. Points 71

Si vous voulez éviter le "abortInError faux" option, prendre un coup d'oeil à build/lint-results-release-fatal.html fichier. Voici les erreurs détectées par les peluches.

J'espère que cela peut aider quelqu'un!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X