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
      }
  }
  ...
pengguna3716366
sumber
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.

Graydyn Young
sumber
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.       

kuku
sumber
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.

Josi
sumber
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

Roberto
sumber
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!

Pecolyte Wang
sumber
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
    }
Dhruv Raval
sumber
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 😐

Mikhail
sumber
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
        }
    }
Amit raj
sumber
18

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

Mateusz Kaflowski
sumber
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
}
Rehan Sarwar
sumber
@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

Masand Harsh
sumber
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'
        }
    }
DoctorDroid Haiti
sumber
7

Temukan saja alasan kesalahan di sini dan perbaiki.

yourProject/app/build/reports/lint-results-release-fatal.xml
Amir Hossein Ghasemi
sumber
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>
tomDev
sumber
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.

Quwaysim
sumber
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'
        }
    }
Keshav Gera
sumber
3

Coba kode di bawah ini

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}
Sheikh Ahmed Qureshi
sumber
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
}
Panneerchelvam Piratheepan
sumber
2

Windows -> referensi -> Android-> pemeriksaan kesalahan serat.

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

masukkan deskripsi gambar di sini

some one
sumber
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
}
Kaiffi
sumber
1

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

Eran Goldin
sumber
0

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

Kamal
sumber
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.

mdicosimo
sumber
0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

Kode di atas dapat memperbaiki masalah dengan mengabaikannya, tetapi dapat mengakibatkan aplikasi mogok juga.

Jawaban yang bagus ada di tautan berikut:

Kesalahan saat membuat apk yang ditandatangani

Josi
sumber
-2

Jika Anda menambahkan di app.gradle di bawah Android {

lintOptions {

    quiet true
    abortOnError false
}

}

Itu akan bekerja

Alpesh Sorathiya
sumber
Saya pikir lebih baik untuk memperbaiki serat dan kesalahan, jika mungkin, daripada melewatkan cek
Piero