web-dev-qa-db-fra.com

échec de la construction de la tâche sur la charpie

J'ai un simple projet Android que j'ai créé avec Android Studio 0.4.0. J'utilise Gradle 1.9 et Gradle Android Plugin 0.7. Hier, j'ai ajouté le Bibliothèque ButterKnife de Jake Wharton dans mon script de création de diplômes:

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

Lorsque j'exécute l'application à partir de Android Studio, la construction fonctionne correctement et s'exécute correctement sur mes appareils. Mais lorsque j'essaie (à partir de la ligne de commande) gradle build, la construction échoue. Voici une partie de mon rapport de charpie:

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.

Peut-être me manque quelque chose, mais ne pas pouvoir construire le projet dans le terminal bloque la possibilité de CI pour les projets Android.

Toute aide est la bienvenue.

93
Serj Lotutovici

Avec 0.7.0 , le support étendu de Lint est étendu, toutefois, cela ne fonctionne pas toujours correctement. (Par exemple, la bibliothèque butterknife)

La solution consiste à désactiver l'abandon de la construction sur les erreurs de lint trouvées

Je me suis inspiré de https://Android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7

(implementation: https://Android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7/build-system/gradle/src/main/groovy/com/Android/build/GR/ /DefaultAndroidProject.Java )

(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 uniquement une règle de Lint particulière et de laisser la construction échouer sur d'autres, utilisez 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'
  }
}
142
Marek Sebera

si abortOnError false ne résoudra pas votre problème, vous pouvez essayer ceci.

lintOptions {
    checkReleaseBuilds false
}
52
panwy

Vous pouvez sélectionner les options appropriées à partir d'ici

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'
    }
}
32
Biswajit Karmakar

Il y a eu quelques erreurs de peluche dans Android Studio qui se sont produites uniquement lorsque j'ai généré un fichier APK signé.

Pour l'éviter, j'ai ajouté ce qui suit à build.gradle

Android {
    lintOptions {
        checkReleaseBuilds false
    }
}
15
Asaf Pinhassi

Ajoutez ces lignes à votre fichier build.gradle:

Android { 
  lintOptions { 
    abortOnError false 
  }
}

Puis nettoyez votre projet: D

11
MhmdAljobairi

Si vous souhaitez éviter l'option "abortInError false", consultez le fichier build/lint-results-release-fatal.html. Voici les erreurs détectées par les peluches.

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

8
Daniel S.

Dans Android Studio v1.2, il vous explique comment y remédier:

enter image description here

4
Allen

Quant à moi, c'est une mauvaise et rapide solution à votre problème:

Android { 
  lintOptions { 
    abortOnError false 
  }
}

Une meilleure solution consiste à résoudre le problème dans votre code, car l'outil Lint vérifie l'exactitude de vos fichiers source de projet Android. , sécurité, performance, convivialité, accessibilité et internationalisation.

Ce problème est le plus fréquent lorsque:

  • La mise en page comprend des symboles non résolus ou un attribut manquant
  • D'autres problèmes structurels, tels que l'utilisation d'éléments obsolètes ou les appels d'API qui ne sont pas pris en charge par les versions de l'API cible, peuvent empêcher le code de fonctionner correctement.

Trouvez vos bogues par Inspect Code dans Android Studio: Améliorez votre code avec Lint

3
Dmytro Melnychuk

Même erreur sur AndroidStudio version 0.51

La compilation fonctionnait correctement et soudainement, après seulement avoir modifié la valeur du code de version, une erreur de compilation liée à Lint s’est produite.

Je ai essayé de changer build.gradle, effacé le cache AndroidStudio et redémarrez, mais pas de changement.

Enfin, je suis revenu au code d'origine (à l'origine de l'erreur) et j'ai retiré Android:debuggable="false" de AndroidManifest.xml, ce qui a permis la réussite de la construction.

Je l'ai ajouté à nouveau et cela fonctionne toujours ... Ne me demandez pas pourquoi: S

3
Cedric Simon

Ajouter

Android.lintOptions.abortOnError false

à votre application\build.gradle

1
Mpak