': app: lintVitalRelease' imzalı apk oluşturulurken hata


238

APK'mı google play'e yüklemeyi denedim ve bir hata mesajı ile karşılaştım: "Hata ayıklanabilir bir APK yüklediniz. Güvenlik nedeniyle, hata ayıklamayı Google Play'de yayınlanmadan önce devre dışı bırakmanız gerekir. Hata ayıklanabilir APK'lar hakkında daha fazla bilgi edinin."

Sonra android:debuggable="false"manifestoma yazdım ve tekrar denedim. Aynı hatayla karşılaştım, bu yüzden modülümden derleme varyantını serbest bırakmak için ayarladım ve tekrar bir apk oluşturmayı denedim, ancak bu sefer bu hata üretildi:

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
Tüm cevaplar hataları kontrol etmemek ya da hataları iptal etmemek gibi görünüyor, ama sorunu bulma ve düzeltmeye ne dersiniz ??? Android Studio, neyin yanlış olduğu hakkında hiçbir bilgi göstermiyor ... Herhangi biri hataları yok sayarak düzeltebildi mi?
Federico Alvarez

stackoverflow.com/questions/43203415/… fr bu sayfaya gidin. benim için işi
Halim Bezek

5
"ama sorunu bulup düzeltmeye ne dersiniz ???" Ben de aynı şeyi düşündüm ama her zaman alt çubuktaki 'Muayene Sonuçları' sekmesini göz ardı ettim ve klasör içeriğini de rapor ettim. Lütfen kontrol edin.
PravyNandas

1
klasör oluşturma / rapor çok iyi bir ipucu. Benim için sorun çeviri eksikti ve html raporundan anlaşıldı.
Pete

hata Google size çözüm vermek, neden bunu denedin mi ???? önce hatayı ve hata mesajını anlamaya çalışın
Mafujul

Yanıtlar:


393

Tiftik kontrollerini kapatmanızı tavsiye etmem, bir sebepten dolayı oradalar. Bunun yerine hatanın ne olduğunu kontrol edin ve düzeltin.

Hata raporu olarak kaydedilir [app module]/build/reports/lint-results-yourBuildName-fatal.html. Hatalar hakkında bilgi edinmek için bu dosyayı bir tarayıcıda açabilirsiniz.

Gradle'ın hata raporunun oluşturulduğu yeri biraz daha netleştirmesi güzel olurdu.


8
Kabul et, hatayı düzeltmek çok daha iyi! Raporu gradlew lintIDE ile veya IDE aracılığıyla manuel olarak oluşturmak da mümkündür , bkz. Developer.android.com/studio/write/lint
Anigif

3
evet, doğru yön. Ayrıca hatalar html iyi tanımlanmış ve hatalar tamam ele, bu yüzden sadece onları kolaylıkla düzeltildi rapor!
CodeToLife

6
evet dediğinde çok can sıkıcı fix the issues identified by lintama aslında bu hataları veya rapor yolunu göstermiyor ...
user25

7
Bu kabul edilen cevap olmalı. Lifin devre dışı bırakılması iyi bir çözüm değildir.
slhddn

1
benim durumumda hata oldu MissingTranslation: Incomplete translation- Google için soru: bu Android Studio'da neden gösterilmiyor ?? Buna integrated development environmentbir sebep denir .
Bir Yerde

187

Bu sorunu yaşadım ve ekleyerek çözdüm:

lintOptions { 

    checkReleaseBuilds false

}

Benim için build.gradleiçinde dosyanın android{ }bölümünde.       


Bunun uygulama üzerinde başka bir yan etkisi yok değil mi?
committedandroider

10
Hayır, tiftikleri kapatmak uygulama üzerinde herhangi bir yan etkiye neden olmaz. Lint bir kod analiz aracıdır ve burada hata ayıklama özelliğinin ayarlanmasından kaynaklanan hata, build / outputs klasöründeki "lint-results-release-fatal.html" dosyasında ayrıntılı olarak görüntülenebilir.
error1337

Bir üst düzey build.grade dosyama bir android {} bölümü eklerken sorun vardı; bu yüzden diğer bazı önerileri takip etti ve bunu uygulama düzeyinde, yani android bölümünün zaten mevcut olduğu bir klasör daha aşağı, benim build.grade dosyasına ekledi.
Martin Zaske

13
Uyarı: Bu, tiftik kontrollerini devre dışı bırakır. En azından hataları devre dışı bırakmadan önce bir göz atmanız daha iyi olur. Benim durumumda, belirli diller için bazı eksik dizeler hakkındaydılar. "Analiz et" -> "Kodu
Markus

2
Bunu tavsiye etmiyorum. Benim durumumda bu uyarıları göz ardı etmek eksik kaynakların çalışma zamanında çökmesine neden olur. Lütfen lint-results-release-fatal.html dosyasını inceleyin ve tüm sorunları giderin.
Paweł Nadolski

76

Tam hatayı bulmak istiyorsanız, projenizde aşağıdaki yola gidin: /app/build/reports/lint-results-release-fatal.html(or .xml). En kolay yol, xml dosyasına giderseniz, hatanın java sınıfındaki veya xml dosyanızdaki konumu da dahil olmak üzere hatanın tam olarak ne olduğunu gösterecektir. Tiftik kontrollerini kapatmak iyi bir fikir değil, bir sebepten dolayı oradalar. Bunun yerine şu adrese gidin:

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

ve düzeltin.


2
Bu sadece hataları görmezden gelip devam etmekten daha iyidir. Ve HTML dosyasını sorunu anlamak çok kolay.
John Pang

Sorunu /app/build/reports/lint-results-release-fatal.xml dosyasında buldum. teşekkürler
Bukunmi

Hayat kurtarıcı. Sorun xml dosyasına baktıktan sonra tam anlamıyla saniyeler içinde çözüldü.
Roman Rozenshtein

50

Tüm string.xmldosyalardaki tüm çevirileri tanımladığınızdan emin olun


1
benim sorunum .... eksik çeviriler ekleyin sorunu düzeltmek teşekkürler
Hatem Badawi

Benim için çalıştı bazı çeviriler eksikti.
Himanshu Rawat

40

Sorunun nerede olduğunu bulmaya çalışabilirseniz , benim projemin şu yolunda benimkini buldum: /app/build/reports/lint-results-release-fatal.html (veya .xml).

Bu yardımcı olur umarım!


her ikisi de dosyalar benim için boş.
m9m9m

35

Android stüdyosundan imzalı apk oluştururken de aynı sorunla karşılaştım. Sadece android {} içindeki build.gradle dosyasında biraz değişiklik yapıyorum

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Bu benim için çalıştı. Benzer bir sorunum vardı. ': App: lint *** Release' görevi için yürütme başarısız oldu. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Nelson Ramirez

24

Hata ayrıntıları nasıl bulunur?

Anylyze -> Kodu Kontrol Et

resim açıklamasını buraya girin

Ardından, Denetim Sonuçlarında bir hata göreceksiniz

resim açıklamasını buraya girin

Benim durumumda Google IAP'deki çözülmemiş javadoc başvurusu nedeniyle derleme başarısız oldu 😐


3
Bu kabul edilen cevap olmalı. Tiftik kontrolünü devre dışı bırakmayı öneren herkese, bu sadece bir çözümdür. Hatayı atlamak yerine düzeltmek daha iyidir. Tiftik kontrollerini atlamak her zaman değil, yalnızca çok özel durumlarda yapılmalıdır. Yine, nadiren yapılmalı veya hiç yapılmamalıdır.
Archie G. Quiñones

20
***Try this***

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

18

Gradle build sekmesinden bir araya getirmeyi seçerek daha fazla bilgi bulabilirsiniz:resim açıklamasını buraya girin


5
Bu gerçek cevap, app, gradle penceresinde montajı gidin ve çift tıklayarak çalıştırın, Android studio tam olarak ne patladığını söyleyecektir.
Wajid Ali

1
Aman tanrım ... teşekkürler! Bu bana çok zaman kazandırdı! : D
thinklinux

Ben var, 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 }ve ben ekledim ama ben bir sürüm oluşturmak her zaman aynı hatayı aldım
Oliver D

11

Bu 3 satırı app.gradle dosyanızda deneyin.

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 başka bir sorunla karşı karşıya olabilirsiniz. Günlük kedi ile sorununuzu göndermek size düzgün bir rehber olabilir.
Rehan Sarwar

8

Sorunum eksik bir çeviriydi. Ben gerekli değildi gibi tercüme edilmemiş bir settings.xml vardı, bu yüzden dizelere "translatable =" false "eklemek zorunda kaldı:

Bu dizenin çeviriye ihtiyacı yok


8

Merhaba millet bu benim için çalıştı, ben sadece gibi BuildTypes değiştirmek:

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

Burada hata nedenini bulup düzeltin.

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

1
tam olarak ne hata olduğunu bilmeli ve onaylamalısınız. teşekkür ederim.
Asesha George

Günlüğümde buldum TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher., yani targetSdkVersion25 ayarlayamıyorum .
Fruit

6

Sorunum eksik bir çeviriydi. Ben gerekli değildi gibi tercüme edilmemiş bir settings.xml vardı, bu yüzden dizelere "translatable =" false "eklemek zorunda kaldı:

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

4

Birçok insanın önerdiği gibi, hatayı kaynaktan düzeltmek her zaman daha iyidir. tüy bırakmayan dosyayı kontrol et

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

dosyayı okuyun ve hatanın nereden geldiğine yönlendirileceksiniz. Benimkini kontrol et: Hata uygunsuz görüş kısıtlamasından kaynaklandı.


4

Bu Sorunu Çöz Bunu build.gradle (app) Dosyasında Kullanma Ana Android'de {inside}

  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

Aşağıdaki kodu deneyin

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

3

resim açıklamasını buraya girin

Bunu android {} build.gradle (Modül: Uygulama) içine ekleyin

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 -> referanslar -> Android-> tüy bırakma hatası kontrolü.

un tick Tam hata çalıştır .......

resim açıklamasını buraya girin


1
Çok güzel, ama bu pencere nereden geliyor lütfen? Android Studio'da bulamadım ...
Martin Zaske

2

Build.gradle'a gidin (Modül: 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

Bu ifadeyi manifestinizden tamamen çıkarın, Eclipse bunu sizin için anında halledecektir.


0

Hatalar üzerinde APK üzerine yazma oluşturmak için kodu proje düzeyinde gradle dosyasına eklemelisiniz


0

Benim durumumda sorun, Google Play için gereken minimum hedef API düzeyiyle ilgiliydi. 26'dan daha az ayarlanmış.

Minimum hedef API düzeyini 26 olarak ayarladığımda sorun kayboldu.



-2

Android altında app.gradle eklerseniz {

lintOptions {

    quiet true
    abortOnError false
}

}

İş alacak


Ben kontrol atlamak yerine, mümkünse, lints ve hataları düzeltmek daha iyi olduğunu düşünüyorum
Piero
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.