Kesalahan ': app: lintVitalRelease' saat membuat apk yang ditandatangani


238

Saya telah mencoba mengunggah apk saya di google play dan menemukan pesan kesalahan: "Anda mengunggah APK yang bisa debuggable. Untuk alasan keamanan Anda perlu menonaktifkan debugging sebelum dapat dipublikasikan di Google Play. Pelajari lebih lanjut tentang APK yang debuggable."

Kemudian saya menulis android:debuggable="false"di manifes saya dan mencoba lagi. Saya telah menemui kesalahan yang sama, jadi saya telah mengatur varian build dari modul saya untuk dirilis dan mencoba membuat apk lagi, tapi kali ini, kesalahan ini dihasilkan:

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
Semua jawaban tampaknya tidak memeriksa kesalahan atau tidak membatalkan kesalahan, tetapi bagaimana dengan menemukan masalah dan memperbaikinya ??? Android Studio tidak menunjukkan informasi tentang apa yang salah ... Adakah yang bisa memperbaikinya tanpa mengabaikan kesalahan?
Federico Alvarez

stackoverflow.com/questions/43203415/… buka halaman ini dari jawaban. ini berhasil untuk saya
Halim Bezek

5
"tapi bagaimana dengan menemukan masalah dan memperbaikinya ???" Saya pikir sama tetapi saya selalu mengabaikan tab 'Hasil Inspeksi' di bar bagian bawah dan juga membangun \ isi folder laporan. Silakan periksa.
PravyNandas

1
folder build / report adalah tip yang sangat bagus. Bagi saya masalahnya adalah terjemahan yang hilang, dan itu jelas dari laporan html.
Pete

pada kesalahan google memberi Anda solusinya, mengapa Anda tidak mencoba ini ???? pada awalnya cobalah untuk memahami kesalahan serta pesan kesalahan
Mafujul

Jawaban:


393

Saya tidak akan merekomendasikan mematikan cek serat, mereka ada di sana karena suatu alasan. Sebagai gantinya, periksa apa kesalahannya dan perbaiki.

Laporan kesalahan disimpan ke [app module]/build/reports/lint-results-yourBuildName-fatal.html. Anda dapat membuka file ini di browser untuk membaca tentang kesalahan.

Alangkah baiknya jika Gradle dapat membuatnya sedikit lebih jelas di mana laporan kesalahan dihasilkan.


8
Setuju, jauh lebih baik untuk memperbaiki kesalahan! Dimungkinkan juga untuk menghasilkan laporan secara manual dengan gradlew lintatau melalui IDE, lihat developer.android.com/studio/write/lint
Anigif

3
ya, arah yang lurus. Terlebih lagi laporan kesalahan dalam html itu dijelaskan dengan baik dan kesalahan diatasi ok, jadi saya hanya memperbaikinya dengan mudah!
CodeToLife

6
ya itu sangat menjengkelkan ketika dikatakan fix the issues identified by linttetapi sebenarnya tidak menunjukkan kesalahan atau jalur untuk melaporkan ...
user25

7
Ini harus menjadi jawaban yang diterima. Menonaktifkan serat bukan solusi yang baik.
slhddn

1
dalam kasus saya kesalahannya adalah MissingTranslation: Incomplete translation- pertanyaan untuk Google: mengapa ini tidak ditampilkan di Android Studio ?? Ini disebut integrated development environmentkarena suatu alasan.
Seseorang di suatu tempat

187

Saya punya masalah ini dan menyelesaikannya dengan menambahkan:

lintOptions { 

    checkReleaseBuilds false

}

ke build.gradlefile saya di dalam android{ }bagian.       


Ini tidak memiliki efek samping lain pada aplikasi, kan?
berkomitmenandroider

10
Tidak, mematikan serat tidak akan menyebabkan efek samping pada aplikasi. Lint adalah alat analisis kode dan kesalahan yang disebutkan di sini disebabkan oleh pengaturan properti debuggable dapat dilihat secara rinci dalam file "lint-results-release-fatal.html" di folder build / output.
error1337

Mengalami kesulitan menambahkan bagian android {} ke file build.grade tingkat atas; jadi ikuti beberapa saran lain dan menambahkan ini ke file build.grade saya di tingkat aplikasi, yaitu satu folder lebih jauh ke bawah, di mana bagian android sudah ada.
Martin Zaske

13
Peringatan: Ini hanya menonaktifkan pemeriksaan serat. Akan lebih baik untuk setidaknya melihat kesalahan sebelum menonaktifkannya. Dalam kasus saya, mereka tentang beberapa string yang hilang untuk bahasa tertentu. Tekan "Analisis" -> "Periksa kode .."
Markus

2
Saya tidak merekomendasikan ini. Dalam kasus saya mengabaikan peringatan ini akan menyebabkan crash pada saat run-time yang disebabkan oleh sumber daya yang hilang. Harap tinjau lint-results-release-fatal.html dan perbaiki semua masalah.
Paweł Nadolski

76

jika Anda ingin mengetahui kesalahan yang sebenarnya, pergi ke jalur berikut dalam proyek Anda: /app/build/reports/lint-result-release-fatal.html(atau .xml). Cara termudah adalah jika Anda pergi ke file xml, itu akan menunjukkan kepada Anda apa kesalahannya termasuk posisinya kesalahan dalam file kelas java atau xml Anda. Menonaktifkan pemeriksaan serat bukanlah ide yang baik, mereka ada di sana karena suatu alasan. Sebaliknya, buka:

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

dan memperbaikinya.


2
Ini jauh lebih baik daripada mengabaikan kesalahan dan melanjutkan. Dan file HTML sangat mudah untuk memahami masalahnya.
John Pang

saya menemukan masalah di /app/build/reports/lint-result-release-fatal.xml. terima kasih
Bukunmi

Penolong. Masalah terpecahkan dalam hitungan detik, setelah melihat file xml.
Roman Rozenshtein

50

Pastikan Anda mendefinisikan semua terjemahan di semua string.xmlfile


1
itu masalah saya .... tambahkan terjemahan yang hilang perbaiki masalah terima kasih
Hatem Badawi

Bagi saya, beberapa terjemahan tidak ada.
Himanshu Rawat

40

Jika Anda dapat mencoba mencari di mana masalahnya, saya menemukan milik saya di jalur proyek saya berikut ini: /app/build/reports/lint-results-release-fatal.html (atau .xml).

Semoga ini membantu!


keduanya file kosong untuk saya.
m9m9m

35

Saya telah menghadapi masalah yang sama ketika membuat apk yang ditandatangani dari android studio. Saya hanya mengubah sedikit perubahan pada file build.gradle di dalam android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Ini berhasil untuk saya. Saya punya masalah serupa. Eksekusi gagal untuk tugas ': aplikasi: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Nelson Ramirez

24

Cara menemukan detail kesalahan

Anylyze -> Periksa Kode

masukkan deskripsi gambar di sini

Kemudian di Hasil Inspeksi Anda akan melihat kesalahan

masukkan deskripsi gambar di sini

Dalam kasus saya build gagal karena referensi javadoc yang belum terselesaikan di Google IAP 😐


3
Ini harus menjadi jawaban yang diterima. Untuk semua orang yang menyarankan untuk menonaktifkan pemeriksaan serat, itu hanya pekerjaan. Masih lebih baik untuk memperbaiki kesalahan daripada melewatkannya. Melewatkan pemeriksaan serat hanya boleh dilakukan dalam kasus yang sangat spesifik dan tidak selalu. LAGI, YANG HARUS DILAKUKAN Jarang ATAU BAHKAN TIDAK SAMA SEKALI.
Archie G. Quiñones

20
***Try this***

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

18

Anda dapat menemukan lebih banyak info memilih assemble dari tab gradle build:masukkan deskripsi gambar di sini


5
ini adalah jawaban yang sebenarnya, buka aplikasi assemble, di jendela gradle dan jalankan dengan mengklik dua kali, studio Android akan memberi tahu Anda apa yang muncul.
Wajid Ali

1
Ya Tuhan ... terima kasih! Yang itu menghemat banyak waktu! : D
thinklinux

Saya dapat, 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 }dan saya menambahkannya tetapi saya mendapatkan kesalahan yang sama setiap kali saya membuat rilis
Oliver D

11

Coba 3 baris ini di file app.gradle Anda.

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 mungkin Anda menghadapi masalah lain. Posting masalah Anda dengan kucing log mungkin seseorang memandu Anda dengan benar.
Rehan Sarwar

8

Masalah saya adalah terjemahan yang hilang. Saya memiliki settings.xml yang tidak diterjemahkan karena tidak diperlukan, jadi saya harus menambahkan "transjemahkan =" false "ke string:

String ini tidak perlu diterjemahkan


8

Hello Guys ini bekerja untuk saya, saya hanya memodifikasi BuildTypes saya seperti ini:

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

Temukan saja alasan kesalahan di sini dan perbaiki.

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

1
Anda harus tahu kesalahan apa yang tepat dan sertifikasi ulang. Terima kasih.
Asesha George

Saya temukan TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.di log saya, yaitu tidak dapat mengatur targetSdkVersion25.
Buah

6

Masalah saya adalah terjemahan yang hilang. Saya memiliki settings.xml yang tidak diterjemahkan karena tidak diperlukan, jadi saya harus menambahkan "transjemahkan =" false "ke string:

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

4

Seperti yang disarankan banyak orang, selalu lebih baik untuk mencoba dan memperbaiki kesalahan dari sumbernya. periksa file yang dihasilkan serat

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

baca file dan Anda akan dipandu ke tempat kesalahan itu berasal. Lihat milik saya: kesalahan berasal dari batasan tampilan yang tidak tepat.


4

Selesaikan Masalah Ini Menggunakan ini di build.gradle (app) File Di dalam Android utama {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

Coba kode di bawah ini

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

3

masukkan deskripsi gambar di sini

Tambahkan ini di dalam android {} build.gradle (Module: 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 -> referensi -> Android-> pemeriksaan kesalahan serat.

centang centang Jalankan kesalahan penuh .......

masukkan deskripsi gambar di sini


1
Sangat cantik, tapi dari mana jendela ini? Saya tidak dapat menemukannya di Android Studio ...
Martin Zaske

2

Pergi ke build.gradle (Modul: aplikasi)

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

Hapus pernyataan itu dari manifes Anda sama sekali, Eclipse akan menanganinya untuk Anda saat itu juga.


0

Anda harus menambahkan kode dalam file tingkat proyek untuk menghasilkan apk menimpa kesalahan


0

Dalam kasus saya, masalahnya terkait dengan level API target minimum yang diperlukan oleh Google Play. Itu ditetapkan kurang dari 26.

Masalah menghilang ketika saya menetapkan level API target minimum menjadi 26.



-2

Jika Anda menambahkan di app.gradle di bawah Android {

lintOptions {

    quiet true
    abortOnError false
}

}

Itu akan bekerja


Saya pikir lebih baik untuk memperbaiki serat dan kesalahan, jika mungkin, daripada melewatkan cek
Piero
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.