': app: lintVitalRelease' Fehler beim Generieren einer signierten apk


236

Ich habe versucht, meine Apk auf Google Play hochzuladen, und es ist eine Fehlermeldung aufgetreten: "Sie haben eine debuggbare APK hochgeladen. Aus Sicherheitsgründen müssen Sie das Debuggen deaktivieren, bevor es in Google Play veröffentlicht werden kann. Weitere Informationen zu debuggbaren APKs."

Dann schrieb ich android:debuggable="false"in mein Manifest und versuchte es erneut. Ich habe den gleichen Fehler festgestellt, daher habe ich die Build-Variante von meinem Modul auf "Freigeben" gesetzt und erneut versucht, eine Apk zu generieren. Diesmal wird jedoch dieser Fehler generiert:

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
Alle Antworten scheinen entweder nicht auf Fehler zu prüfen oder Fehler nicht abzubrechen, aber wie wäre es, das Problem zu finden und es zu beheben? Android Studio zeigt keine Informationen darüber an, was falsch ist ... Hat jemand dies beheben können, ohne Fehler zu ignorieren?
Federico Alvarez

stackoverflow.com/questions/43203415/… gehen Sie auf diese Seite für die Antwort. seine Arbeit für mich
Halim Bezek

5
"aber was ist mit dem Finden und Beheben des Problems ???" Ich dachte das Gleiche, aber ich habe immer die Registerkarte "Prüfergebnisse" in der unteren Leiste übersehen und auch den Inhalt des Ordners "Build \ Report" erstellt. Bitte prüfen.
PravyNandas

1
Der Build / Report-Ordner ist ein sehr guter Tipp. Für mich fehlten Übersetzungen, und das ging aus dem HTML-Bericht hervor.
Pete

auf den Fehler Google geben Sie die Lösung, warum haben Sie dies nicht versucht ???? Versuchen Sie zunächst, den Fehler sowie die Fehlermeldung zu verstehen
Mafujul

Antworten:


391

Ich würde nicht empfehlen, die Flusenprüfungen auszuschalten, sie sind aus einem bestimmten Grund da. Überprüfen Sie stattdessen den Fehler und beheben Sie ihn.

Der Fehlerbericht wird in gespeichert [app module]/build/reports/lint-results-yourBuildName-fatal.html. Sie können diese Datei in einem Browser öffnen, um Informationen zu den Fehlern zu erhalten.

Es wäre schön, wenn Gradle etwas klarer machen könnte, wo der Fehlerbericht generiert wird.


8
Stimmen Sie zu, es ist viel besser, den Fehler zu korrigieren! Es ist auch möglich, den Bericht manuell mit gradlew lintoder über eine IDE zu generieren , siehe developer.android.com/studio/write/lint
Anigif

3
Ja, richtige Richtung. Außerdem wurde der Fehlerbericht in diesem HTML gut beschrieben und die Fehler wurden in Ordnung behoben, so dass ich sie einfach mit Leichtigkeit korrigierte!
CodeToLife

6
Ja, es ist sehr ärgerlich, wenn es heißt, fix the issues identified by lintaber diese Fehler oder den zu
meldenden

7
Dies muss die akzeptierte Antwort sein. Das Deaktivieren von Flusen ist keine gute Lösung.
Slhddn

1
in meinem Fall war der Fehler MissingTranslation: Incomplete translation- Frage an Google: Warum wird dies nicht in Android Studio angezeigt? Es heißt a integrated development environmentaus einem Grund.
Jemand irgendwo

186

Ich hatte dieses Problem und löste es durch Hinzufügen von:

lintOptions { 

    checkReleaseBuilds false

}

zu meiner build.gradleDatei innerhalb des android{ }Abschnitts.       


Dies hat keine weiteren Nebenwirkungen auf die Anwendung, oder?
committedandroider

10
Nein, das Ausschalten von Flusen verursacht keine Nebenwirkungen auf die Anwendung. Lint ist ein Code-Analyse-Tool, und der hier erwähnte Fehler, der durch das Festlegen der debuggable-Eigenschaft verursacht wird, kann in der Datei "lint-results-release-fatal.html" im Ordner build / output detailliert angezeigt werden.
error1337

Ich hatte Probleme beim Hinzufügen eines Android {} - Abschnitts zu meiner build.grade-Datei der obersten Ebene. Befolgen Sie daher einige andere Ratschläge und fügen Sie diese meiner build.grade-Datei auf der Ebene der App hinzu, dh einen Ordner weiter unten, in dem der Android-Bereich bereits vorhanden war.
Martin Zaske

13
Warnung: Dadurch werden die Flusenprüfungen einfach deaktiviert. Es ist besser, sich zumindest die Fehler anzusehen, bevor Sie sie deaktivieren. In meinem Fall handelte es sich um einige fehlende Zeichenfolgen für bestimmte Sprachen. Klicken Sie auf "Analysieren" -> "Code überprüfen .."
Markus

2
Ich empfehle das nicht. In meinem Fall würde das Ignorieren dieser Warnungen zur Laufzeit zu Abstürzen führen, die durch fehlende Ressourcen verursacht werden. Bitte überprüfen Sie lint-results-release-fatal.html und beheben Sie alle Probleme.
Paweł Nadolski

75

Wenn Sie den genauen Fehler herausfinden möchten, gehen Sie in Ihrem Projekt zum folgenden Pfad: /app/build/reports/lint-results-release-fatal.html (oder .xml). Der einfachste Weg ist, wenn Sie zur XML-Datei gehen, sie zeigt Ihnen genau, was der Fehler ist, einschließlich der Position des Fehlers in Ihrer Java-Klasse oder XML-Datei. Das Ausschalten der Flusenprüfungen ist keine gute Idee, sie sind aus einem bestimmten Grund da. Gehen Sie stattdessen zu:

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

und reparieren Sie es.


1
Dies ist viel besser, als nur die Fehler zu ignorieren und fortzufahren. Und die HTML-Datei ist so einfach, das Problem zu verstehen.
John Pang

Ich habe das Problem in /app/build/reports/lint-results-release-fatal.xml gefunden. danke
Bukunmi

Lebensretter. Problem in buchstäblich Sekunden nach dem Betrachten der XML-Datei gelöst.
Roman Rozenshtein

50

Stellen Sie sicher, dass Sie alle Übersetzungen in allen string.xmlDateien definiert haben


1
das war mein Problem .... fehlende Übersetzungen hinzufügen das Problem beheben danke
Hatem Badawi

Bei mir fehlten einige Übersetzungen.
Himanshu Rawat

40

Für den Fall, dass Sie versuchen, das Problem zu finden, habe ich es im folgenden Pfad meines Projekts gefunden: /app/build/reports/lint-results-release-fatal.html (oder .xml).

Hoffe das hilft!


Beide Dateien sind für mich leer.
m9m9m

35

Ich habe das gleiche Problem beim Erstellen von signierten apk aus Android Studio konfrontiert. Ich ändere nur ein wenig an der build.gradle- Datei in android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Das hat bei mir funktioniert. Ich hatte ein ähnliches Problem. Ausführung für Aufgabe ': app: lint *** Release' fehlgeschlagen. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Nelson Ramirez

24

So finden Sie Fehlerdetails

Anylyze -> Code überprüfen

Geben Sie hier die Bildbeschreibung ein

Dann sehen Sie in den Prüfergebnissen einen Fehler

Geben Sie hier die Bildbeschreibung ein

In meinem Fall schlug die Erstellung aufgrund einer ungelösten Javadoc-Referenz in Google IAP fehl


3
Dies sollte die akzeptierte Antwort sein. Für alle Leute, die vorgeschlagen haben, die Flusenprüfung zu deaktivieren, ist das nur eine Lösung. Es ist immer noch besser, den Fehler zu beheben, als ihn zu überspringen. Das Überspringen von Flusenprüfungen sollte nur in ganz bestimmten Fällen und nicht immer durchgeführt werden. WIEDER, DAS SOLLTE SELTEN ODER AUCH NICHT GEMACHT WERDEN.
Archie G. Quiñones

20
***Try this***

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

18

Weitere Informationen zur Auswahl von Assemble finden Sie auf der Registerkarte Gradle Build:Geben Sie hier die Bildbeschreibung ein


5
Dies ist die eigentliche Antwort. Gehen Sie zur Zusammenstellung in der App, im Gradle-Fenster und führen Sie sie durch Doppelklick aus. Android Studio sagt Ihnen genau, was es ausgelöst hat.
Wajid Ali

1
Oh mein Gott ... danke! Das hat mir viel Zeit gespart! : D
thinklinux

Ich habe, 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 }und ich habe es hinzugefügt, aber ich habe den gleichen Fehler in jedem Mal, wenn ich eine Veröffentlichung baue
Oliver D

11

Probieren Sie diese 3 Zeilen in Ihrer app.gradle-Datei aus.

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 könnte sein, dass Sie vor einem anderen Problem stehen. Veröffentlichen Sie Ihr Problem mit Log Cat möglicherweise eine Anleitung, die Sie richtig führt.
Rehan Sarwar

8

Mein Problem war eine fehlende Übersetzung. Ich hatte eine settings.xml, die nicht übersetzt wurde, da sie nicht benötigt wurde, also musste ich den Zeichenfolgen "translatable =" false "hinzufügen:

Diese Zeichenfolge muss nicht übersetzt werden


8

Hallo Leute, das hat bei mir funktioniert. Ich ändere meine BuildTypes einfach so:

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

Finden Sie einfach den Fehlergrund hier und beheben Sie ihn.

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

1
Sie sollten wissen, was genau Fehler und erneut zertifizieren. Danke.
Asesha George

Ich habe TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.in meinem Log gefunden, dh kann nicht targetSdkVersion25 setzen .
Obst

6

Mein Problem war eine fehlende Übersetzung. Ich hatte eine settings.xml, die nicht übersetzt wurde, da sie nicht benötigt wurde, also musste ich den Zeichenfolgen "translatable =" false "hinzufügen:

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

4

Wie viele Leute vorgeschlagen haben, ist es immer besser, den Fehler aus der Quelle zu beheben. Überprüfen Sie die fusselförmige Datei

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

Lesen Sie die Datei und Sie werden dahin geführt, woher der Fehler kommt. Schauen Sie sich meine an: Der Fehler ist auf eine falsche Ansichtsbeschränkung zurückzuführen.


4

Lösen Sie dieses Problem, indem Sie dies in der Datei build.gradle (app) Inside main Android {inside} verwenden.

  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

Versuchen Sie es mit dem folgenden Code

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

3

Geben Sie hier die Bildbeschreibung ein

Fügen Sie dies in Android {} build.gradle (Modul: 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 -> Referenzen -> Android-> Flusenfehlerprüfung.

un tick Vollständigen Fehler ausführen .......

Geben Sie hier die Bildbeschreibung ein


1
Sehr hübsch, aber woher kommt dieses Fenster bitte? Ich konnte es nicht in Android Studio finden ...
Martin Zaske

2

Gehen Sie zu build.gradle (Modul: 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
}

1

Entfernen Sie diese Aussage vollständig aus Ihrem Manifest. Eclipse erledigt dies für Sie im laufenden Betrieb.


0

Sie sollten den Code in die Gradle-Datei auf Projektebene einfügen, um das Überschreiben von Apk-Fehlern zu generieren


0

In meinem Fall hing das Problem mit der Mindestziel-API-Stufe zusammen, die von Google Play benötigt wird. Es wurde weniger als 26 eingestellt.

Das Problem ist verschwunden, als ich die minimale Ziel-API-Stufe auf 26 festgelegt habe.


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

Der obige Code kann das Problem beheben, indem er ignoriert wird. Er kann jedoch auch zum Absturz der App führen.

Die gute Antwort finden Sie im folgenden Link:

Fehler beim Generieren der signierten apk


-2

Wenn Sie in app.gradle unter Android hinzufügen {

lintOptions {

    quiet true
    abortOnError false
}

}}

Es wird Arbeit bekommen


Ich denke, es ist besser, Lints und Fehler zu beheben, wenn möglich, als die Prüfung zu überspringen
Piero
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.