Saya mencoba mengubah aktivitas default / main / startup (apa pun namanya) dengan mengedit androidmanifest.xml
file. Yang saya lakukan hanyalah mengubah android:name
properti. Namun, ini benar-benar merusak seluruh aplikasi. ketika saya mencoba untuk menginstalnya gagal dan membaca.
Kesalahan pemasangan: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Ketika saya mencoba mengubahnya kembali ke keadaan sebelumnya, itu masih memberi saya kesalahan yang sama ... Apa yang telah saya lakukan?
android
installation
apk
android-install-apk
mtmurdock
sumber
sumber
INSTALL_PARSE_FAILED_NO_CERTIFICATES
adalah kesalahan-103
yang bisa Anda dapatkan / lihat melaluiadb log
( src ) misalnya.D/PackageInstaller(21320): Installation error code: -103
Jawaban:
Apakah Anda mengedit
AndroidManifest.xml
langsung di.apk
file? Jika demikian, itu tidak akan berhasil.Setiap Android
.apk
harus ditandatangani jika ingin diinstal pada ponsel , bahkan jika Anda tidak menginstal melalui Market. Alat pengembangan bekerja di sekitar ini dengan menandatangani dengan sertifikat pengembangan tetapi.apk
masih ditandatangani.Salah satu penggunaannya adalah agar perangkat dapat mengetahui apakah suatu
.apk
upgrade yang valid untuk aplikasi yang diinstal, karena jika itu Sertifikatnya akan sama.Jadi, jika Anda membuat perubahan apa pun pada aplikasi Anda, Anda harus membangunnya kembali
.apk
agar ditandatangani dengan benar.sumber
flutter clean
dan jalankan / debug lagi! Operasi ini mirip dengan solusi di atas karena membersihkan folder build dan membangun kembali file build lagi saat dijalankan / debug!Saya menemukan bahwa kesalahan ini sekarang juga dapat terjadi ketika menggunakan konfigurasi penandatanganan yang salah. Seperti dijelaskan di sini , Android 7.0 memperkenalkan skema tanda tangan baru, V2 . Skema V2 menandatangani seluruh APK daripada hanya JAR, seperti yang dilakukan dalam skema V1. Jika Anda masuk dengan hanya V2, dan mencoba untuk menginstal pada target pra-7.0, Anda akan mendapatkan kesalahan ini karena JAR sendiri tidak ditandatangani dan PackageManager pra-7.0 tidak dapat mendeteksi keberadaan tanda tangan APK V2.
Agar kompatibel dengan semua sistem target, pastikan APK ditandatangani dengan kedua skema dengan mencentang kedua kotak versi tanda tangan di dialog Generate Signed APK Android Studio seperti yang ditunjukkan di sini:
Jika hanya 7,0 target yang diantisipasi, maka tidak perlu menyertakan tanda tangan V1.
sumber
Saya menemukan ini disebabkan oleh versi JDK saya.
Saya mengalami masalah ini dengan 'semut' dan itu karena HATI-HATI ini disebutkan dalam dokumentasi:
Saya memiliki JDK 7. Dalam log Ant saya, saya menggunakan -v untuk verbose dan itu menunjukkan
Saya menandatangani JAR secara manual dan menandainya, tetapi memberikan kesalahan yang sedikit berbeda:
Saya menemukan jawaban itu di sini.
Cara menangani INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES tanpa penghapusan instalasi
Saya hanya perlu mencopotnya lalu berhasil!
Sekarang saya hanya perlu memodifikasi build.xml untuk menggunakan opsi itu ketika masuk!
Oke, ini dia: C: \ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml
sumber
Sebagian besar waktu solusi untuk kesalahan ini sangat sederhana:
sumber
dipecahkan (untuk saya) menggunakan di keytool the args
dan menggunakan di jarsigner
solusi ditemukan di
Pitfal macam apa yang ada untuk penandatanganan APK Android?
sumber
Saya juga menghadapi masalah yang sama. Pertama saya membuat build menggunakan V2 dan menginstalnya di perangkat seluler yang berjalan pada OS 5.1 dan saya mendapatkan masalah yang sama. Tapi build berfungsi dengan baik pada Tablet yang berjalan pada OS 7.0. Jadi saya membuat build dengan tanda tangan V1 Jar dan bekerja dengan baik pada kedua perangkat.
Kesimpulan: Jika Anda mendukung perangkat di bawah Android OS 7.0. Gunakan tanda tangan jar V1 untuk menghasilkan build.
sumber
Dalam kasus saya, saya bisa membangun dan menjalankan rilis build, tetapi mendapatkan
INSTALL_PARSE_FAILED_NO_CERTIFICATES
kesalahan ketika mencoba melakukan build debug.Solusinya adalah menghapus
debug.keystore
file saya dan membiarkan ADT membuatnya kembali. Tampaknya sudah kedaluwarsa.Solusi jangka panjang yang lebih baik adalah secara eksplisit membuat
debug.keystore
yang tidak berakhir setelah hanya satu tahun, daripada membiarkan ADT membuatnya. Inilah perintah untuk melakukan itu:Saat diminta, masukkan nilai-nilai ini:
sumber
Ini adalah solusi yang jelek tapi cepat: gunakan JDK 6 bukannya 7.
Setelah membaca jawaban Chloe, saya menghapus JDK 7 saya (tidak memerlukannya saat ini) dan menginstal JDK 6. Itu memperbaikinya. Solusi yang lebih baik akan membuat semut menggunakan JDK 6 (tanpa menghapus instalasi 7). Mungkin mungkin mengubah / mengatur properti ini:
java.library.path
dalam file properti lokal. Itu ada di direktori proyek (root).
Bagaimanapun, Android tidak bekerja dengan JDK 7 (hanya 6 atau 5), jadi pastikan skrip semut juga menggunakan JDK 6 atau 5 mungkin merupakan solusi yang baik.
sumber
Karena build dan current yang dihasilkan sebelumnya mengalami konflik dalam versi tanda tangan antara v1 (jar signature) dan v2 (tanda tangan APK lengkap),
Untuk memperbaiki centang versi tanda tangan yang tepat di bawah dialog Generate Signed APK
sumber
Baru-baru ini saya mengalami kesalahan ini saat meningkatkan ke Android Studio 4.0. Penyebabnya adalah bahwa proyek memiliki Penandatanganan V2 Dinonaktifkan dalam konfigurasi penandatanganan di
build.gradle
.Solusinya adalah menghapus
v2SigningEnabled false
atau secara eksplisit mengaturnyatrue
, yang merupakan nilai default.sumber
Di Android Studio versi 3.2+ yang lebih baru, jika Anda mencoba menjalankan
release
instalasi, dan Anda belum menentukan konfigurasi penandatanganan, itu akan menampilkan prompt kesalahan dan instalasi akan gagal. Yang perlu Anda lakukan adalah menjalankandebug
build atau mengatur konfigurasi penandatanganan (V1 atau V2) dengan benar.sumber
sebagian besar jawaban benar. dan beberapa alasan lain yang terjadi adalah
sumber
Ini bisa terjadi jika Anda mencoba memasukkan
.jar
pustaka yang berisiAndroidManifest.xml
file.sumber
Anda juga dapat memeriksa
Project Structure
->Default Config
->Signing Config
setelah kamu menambahkan semua yang kamu butuhkan
sumber
Pengaturan variabel lingkungan
JAVA_HOME
ke JDK 5 atau 6 (bukan JDK 7) memperbaiki kesalahan.sumber
Setelah beberapa waktu dan beberapa utas online tentang subjek saya berhasil memperbaiki proyek saya.
Ini terutama mempertimbangkan file terakhir ( bisa berupa gambar atau tata letak ) yang Anda masukkan. Jika Anda menghapusnya, itu akan berhasil, dan Anda dapat membangun proyek Anda lagi.
sumber
Saya mengalami kesalahan ini di Eclipse Console saya. Ternyata saya memiliki dua toples dengan konten yang sama tetapi nama yang berbeda dan mereka saling bertentangan. Saya baru saja menghapus salah satunya dan berhasil menginstal aplikasi pada perangkat.
sumber
Saya mendapatkan kesalahan ini karena saya melepaskan bahwa saya
ant release
gagal karena saya kehabisan ruang disk.sumber
Saya mendapatkan kesalahan ini ketika saya mencoba menginstal proyek Xamarin yang dibangun terhadap pratinjau Android N pada ponsel yang menjalankan api v23. Solusi adalah tidak melakukan itu.
sumber
Cara lain untuk mendapatkan kesalahan ini adalah membangun menggunakan
ant
pada macOS dan memiliki file ikon Finder (Icon\r
) di pohon sumber aplikasi. Tampaknyajarsigner
tidak dapat mengatasi carriage return dalam nama file dan, meskipun ia akan mengklaim penandatanganan itu valid jika Anda-verify
APK, selalu menghasilkan APK yang tidak akan diinstal pada perangkat. Ironisnya, plugin Google Drive Finder adalah sumber yang bagus untuk file ikon Finder.Solusinya adalah dengan mengecualikan file yang menyinggung (yang tidak berguna di APK pula) dengan specifier seperti ini di
fileset
:sumber
Masalah ini akan terjadi jika Anda menginstal versi APK yang tidak ditandatangani. Periksa apakah Anda menginstal APK yang benar.
sumber
Saya punya masalah dengan ionic / Visual Studio Code (Jalankan Android di perangkat):
Saya mencopot aplikasi pada perangkat seluler (Pengaturan / Aplikasi), kesalahan hilang dan aplikasi mulai.
sumber
Ini melempar kesalahan ini untuk saya hari ini karena saya memiliki aplikasi dengan min SD dari 28 dan saya memukul bermain pada emulator dengan versi SDK 23. Biasanya ini tidak mungkin (AS abu-abu keluar tombol putar), tapi hari ini tidak begitu banyak.
sumber
Pertama coba lakukan itu:
sumber
Jika Anda menggunakan emulator maka coba setel ulang dan jika Anda di mobile pertama hapus instalan aplikasi kemudian matikan mode pengembang, dan kemudian aktifkan masalah yang akan dipecahkan.
sumber