“Parse Error: Ada masalah saat mengurai paket” saat menginstal aplikasi Android

104

Saya mendapat kesalahan ini saat menginstal aplikasi android ( Parse Error : There is a problem parsing the package.). Saya melakukan langkah-langkah berikut.

  1. Pertama kali saya menginstal aplikasi dan berfungsi dengan baik.

  2. Saya membuat perubahan pada aplikasi yang ada dan mengubah versi no di file Manifest.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
  3. Kemudian saya mengekspor aplikasi dan menyelesaikan proses penandatanganan kode. Untuk ini, Klik kanan node Proyek Anda> pilih Ekspor. Di sana Anda akan melihat seorang penyihir. Ikuti langkah-langkahnya dan selesaikan juga penandatanganan kode.

  4. Saya mendapat file ARDemo.apk, Kemudian saya mengubah namanya menjadi ARDemo1.apk

  5. Kemudian saya mengirimkan file apk ini ke Kartu SD ponsel dan memulai instalasi saya mendapat kesalahan di atas.

Saya mencari di Google, mereka mengatakan masalah itu dengan membongkar file manifes.

Adakah yang bisa memberi tahu saya apa yang salah dengan saya?

Raghu
sumber
Anda harus meletakkan nomor versi pada tiga. silakan merujuk ke tutorial bahasa Jepang di situs
Hai Ejder, Terima kasih atas tanggapan Anda. Masalah saya sudah diperbaiki. Kesalahan saya adalah "Saya telah mengubah nama file apk secara manual". Di atas 2 adalah kode versi aplikasi saya bukan nilai mntdk. Saya menempatkan nilai menit ddk sebagai 3. Terima kasih & Salam, Raghavendra K
Raghu
4
hanya berpikir mengapa mengganti nama menjadi masalah?
Mikey
Halo Mike, saya mengubah nama setelah ekspor. Itulah mengapa Ini memberi kesalahan. Jika kita menentukan nama yang berbeda saat mengekspor itu tidak akan menjadi masalah bagi saya ..
Raghu
1
Halo Cru, Mengubah versi no tidak membuat masalah ini. Saya telah mengganti nama file apk setelah saya melakukan ekspor. Ini menciptakan masalah ini.
Raghu

Jawaban:

49

Anda mengatakan bahwa pertama kali Anda menginstal aplikasi itu berfungsi dengan baik.

Satu-satunya perbedaan dalam langkah-langkah yang Anda uraikan antara kedua versi tersebut adalah:

  1. Nomor versi (Saya berasumsi bahwa ini tidak berpartisipasi dalam melanggar apa pun)
  2. Kode
  3. Nama file .apk

Coba ganti nama file ARDemo1.apk kembali ke ARDemo.apk (pastikan untuk mencadangkan versi yang lebih lama) dan lihat apakah itu membantu. Dugaan saya adalah itu ada hubungannya dengan nama apk.

Jika masih tidak berhasil, maka Anda dapat menghilangkan nama file apk sebagai sumber masalah dan mulai menyelidiki 2) dengan membangun kembali versi lama Anda dan melihat apakah Anda mengalami masalah yang sama lagi. Jika masalah tidak ada dengan versi yang dibangun kembali dari kode lama Anda, maka Anda tahu itu pasti ada hubungannya dengan kode Anda.

Saya harap itu membawa Anda ke suatu tempat.

Selamat, Joseph

pengguna175750
sumber
Hai Joseph, Tebakan Anda benar. Saya mengganti nama file apk menjadi yang sebelumnya. Berhasil ...... Terima kasih banyak atas bantuannya .....
Raghu
Hai, saya menghadapi masalah serupa. Saya mengunduh aplikasi dari tautan web. Itu duduk di SDCard seluler dengan sempurna. Tetapi ketika saya mencoba menginstal itu menunjukkan kesalahan ini. Saya tidak menandatangani aplikasi saya, pada dasarnya saya adalah pemula dalam pengembangan aplikasi Android. Bantuan apa pun sangat kami hargai :)
varunrao321
2
Saya menghadapi masalah yang sama dan kasusnya adalah versi SDK minimum dalam file .gradle. Pikirkan tentang itu dan versi perangkat Anda dan itu akan sangat membantu.
pengguna2881604
Ya, Anda benar itu masalah nama file apk ...!
Arsal Imam
Saya mengganti nama file apk dan parse errorhilang, tetapi ketika mencoba menginstalnya sekarang ini menunjukkan saya App not installedmenggunakan perangkat marshmallow dan mungkin sama dengan masalah di sini stackoverflow.com/questions/33930223/…
natsumiyu
45

Instalasi dapat memberikan kesalahan yang ditentukan setidaknya dalam kasus berikut:

  • Nama paket diubah setelah penandatanganan : Gunakan nama persis seperti paket yang ditandatangani (sebagai gantinya, sesuaikan nama di Manifes)
  • Paket dikompilasi berdasarkan pada level API yang lebih tinggi : Perbaiki level API di file Manifes
  • Paket dijalankan dari kartu SD : Jalankan (instal) file apk dari memori ponsel ATAU gunakan perintah adb untuk menginstalnya
jmu
sumber
Saya rasa ada kondisi lain yang bisa membuat ini terjadi. Misalnya, lihat komentar saya tentang jawaban kansasian di bawah ini tentang mendapatkan pesan kesalahan ini saat menginstal dari email.
M Katz
Jawaban terbaik disini. Bagi saya itu mengubah nama paket setelah ditandatangani. Terima kasih banyak.
Jannie Theunissen
Saya berasumsi Anda harus memiliki ponsel yang di-rooting agar dapat menginstalnya menggunakan adb installkan?
abbood
Tidak: Rooting tidak diperlukan - Anda mungkin perlu mengaktifkan Sumber tidak dikenal dari pengaturan Keamanan. (belum dikonfirmasi)
jmu
Sumber tidak dikenal DAN debugging usb ... catatan: di windows 8 terkadang tidak akan mengenali ponsel dalam mode MTP, hanya PTP ...
SparK
22

Saya hanya melihat kesalahan penguraian ketika versi android di perangkat lebih rendah dari versi aplikasi yang dikompilasi. Misalnya jika aplikasi dikompilasi untuk Android OS v2.2 dan perangkat Anda hanya memiliki Android OS v2.1, Anda akan mendapatkan kesalahan parse saat mencoba menginstal aplikasi.

Tuan Scalawag
sumber
Saya terkena itu beberapa waktu yang lalu, butuh waktu lama untuk mengetahuinya!
olafure
14

Alasannya adalah apk tidak ditandatangani. Setelah apk ditandatangani, masalah akan diselesaikan. http://ionicframework.com/docs/guide/publishing.html Silakan gunakan tautan pada instruksi untuk menandatangani apk.

Shivendra
sumber
Masalah yang sama disini. Setelah menandatangani apk, itu berfungsi seperti yang diharapkan.
Dino Tw
3
Ini adalah masalah bagi saya dengan Xamarin Android build - ini pertama kali membuat APK di Manajer Arsip yang tidak ditandatangani. Anda kemudian harus memilih "Distribusikan" untuk membuat APK bertanda tangan yang dapat diinstal.
dodgy_coder
Menambah apa yang ditulis dodgy_coder: untuk Xamarin. Android 7 atau lebih tinggi atau versi sebelumnya .
Veverke
13

Alih-alih memotret dalam kegelapan, dapatkan alasan kesalahan ini dengan menginstalnya melalui adb:

adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk

Ganti emulator-5555dengan nama perangkat Anda. Anda dapat memperoleh daftar menggunakan:

adb devices

Setelah gagal, itu akan memberi alasan. Alasan umum dan perbaikannya:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATES: Referensi
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLE: Referensi
Veneet Reddy
sumber
Apa yang harus saya lakukan jika berhasil?
Jacob Sánchez
1
Ini sangat membantu saya. Terima kasih!
Tgo1014
7

Periksa apakah perangkat Anda mendukung versi yang Anda tentukan di minSdkVersion di AndroidManifest.xml. Jika tidak tentukan versi yang lebih rendah dan coba lagi

Mohammed Irfan Tirupattur
sumber
6

Jika Anda mengompilasi dan mengekspor file apk Anda di bawah SDK versi 2.1, itu tidak akan berfungsi pada versi Android apa pun di bawah ekspor SDK "2.1" Anda. Perangkat lunak Android kompatibel ke depan tidak kompatibel ke belakang. Misalnya, jika Anda memprogram menggunakan paket android NDK (ann add-on ke android SDK) yang memungkinkan pengembangan dalam kelompok C / C ++, ini hanya kompatibel dengan android 2.3, android versi 2.2 dan di bawahnya hanya mendukung build java. Oleh karena itu, Anda akan mengembalikan kesalahan "Ada masalah saat mengurai paket".

Mike
sumber
3

Kemungkinan lain adalah Anda telah menyimpan file apk ke dalam folder PRIVATE aplikasi dan kemudian mencoba menginstal (dengan memulai maksud dari kode Anda). dalam kasus ini, ketika Anda memulai maksud, Anda mendapatkan paket penguraian kesalahan. Dalam kasus ini, kesalahan yang muncul adalah tentang masalah izin. Intinya adalah menyimpan file ke folder privat bukanlah praktik yang baik, namun jika Anda benar-benar ingin melakukannya, Anda harus menulis file dalam MODE_WORL_READABLE saat Anda mendownloadnya. Harap pertimbangkan bahwa MODE_WORLD_READABLE sudah usang dan solusi ini bukan yang terbaik karena memiliki beberapa masalah keamanan. Yang terbaik adalah menyimpan file Anda di penyimpanan eksternal.

MojAmiri
sumber
3

Saya tidak mengulangi apa yang diinstruksikan di sini untuk memasukkan penyimpanan kunci, kata sandi, dll. Coba

Build -> Generate Signed APK -> [Input] --- Next ---> pilih KEDUA

  • V1 (Tanda Tangan Jar)
  • V2 (Tanda Tangan APK Lengkap)

Saya tidak tahu mengapa, tapi setidaknya itu berhasil dalam situasi saya.

JeffNhan
sumber
1
Bekerja untuk saya. Itu tidak diperiksa di Android Studio MacOS secara default.
vojta
2

Saya mendapat kesalahan yang sama (Kesalahan Parse, Ada masalah saat mengurai paket) saat mencoba memasang paket .apk dari email. Saya dapat mengatasi masalah ini dengan menginstal penginstal paket pihak ketiga ApKatcher:

http://www.addictivetips.com/mobile/install-android-apps-from-gmail/

ApKatcher bukanlah satu-satunya solusi. Seorang rekan saya mengatasi masalah ini dengan menginstal Astro File Manager.

Anda dapat menemukan kedua aplikasi tersebut di Android Marketplace.

kansasian
sumber
Untuk menambahkan titik data lain di sini, saya juga mendapatkan kesalahan ini saat menginstal dari email, tetapi terinstal dengan baik ketika saya menggunakan kabel dan adb untuk menginstal paket yang sama. Sayangnya saya mencoba menginstal melalui yahoo mail, jadi menurut saya ApKatcher tidak dapat membantu.
M Katz
1

Masalah serupa, menggunakan kode "pinjaman" dan sedikit diubah ini:

                Intent intent = new Intent(Intent.ACTION_VIEW);
                File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
                intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                result = true;

Diperlukan untuk mengubah pembuatan file menjadi ini (koma, bukan plus di konstruktor File, tidak ada '/' setelah direktori unduhan):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");
William T. Mallard
sumber
1

Saya memiliki pasangan tag yang buruk di file manifes saya.

<meta-data>
</meta-data>

Pada dasarnya masuk ketika saya menyalin meta-datakode sampel yang buruk dari file pdf payu. Sampah.

Siddharth
sumber
1

Salah satu alasannya mungkin, nama aktivitas Anda tidak ditentukan dalam manifes

    <activity
          android:name=""
          ...>
</activity>

kode di atas menciptakan masalah yang sama dengan saya

Abhishek
sumber
1

Masalah lain yang menyebabkan kesalahan ini dapat menginstal APK dari titik pemasangan kartu SD terbatas /mnt/media_rw/MicroSD .

Gunakan titik pemasangan yang tidak dibatasi /Removable/MicroSD.

Honza
sumber
1

Dan hanya untuk membantu pembaca baru yang mungkin, alasan lain mungkin kesalahan dalam file manifes. Saya telah salah mengetik android:servicesebagai android.servicedan berlari ke dalam kesalahan yang sama ...

MortenSickel
sumber
1

Seperti yang disebutkan oleh @Veneet Reddy, instal melalui ADB.

Buka ADT Bundle / sdk / platform-tools melewati file.apk file dan jalankan command prompt sebagai administrator.

Kemudian jalankan adb devicesperintah yang akan mencantumkan perangkat atau emulator yang terhubung yang sedang berjalan.

masukkan deskripsi gambar di sini

Lalu lari adb -s yourDeviceID install yourApk.apk

masukkan deskripsi gambar di sini

Catatan: hapus instalan aplikasi jika Anda sudah menginstal sebelum menginstal lagi.

Muhammad
sumber
0

Bagi orang lain yang mengalami masalah ini, satu-satunya saat saya mendapatkan kesalahan ini adalah ketika versi API di konfigurasi Android Build Anda tidak cocok dengan yang ada di perangkat fisik.

Masuk ke Eclipse dan klik kanan pada proyek Anda dan pergi ke properti. Pilih Android - YANG MEMBAWA ANDA KE TARGET BANGUNAN ANDROID. Sesuaikan target Anda agar sesuai dengan perangkat dan lihat apakah itu menyelesaikan masalah.

j2emanue
sumber
0

Saya mengalami masalah ini, bahkan ketika saya menentukan versi minSDK dan targetSDK yang benar. Masalah saya adalah, saya menggunakan "android:theme="@android:style/Theme.NoTitleBar.Fullscreen"aktivitas peluncur, di perangkat Jellybean. Ketika saya menghapus atribut ini, itu berhasil.

pengguna1035292
sumber
0

Seperti yang disebutkan oleh beberapa jawaban lain, mungkin ada masalah saat memasang dari kartu SD. Dalam kasus saya, saya mendistribusikan aplikasi saya melalui lampiran email, dan biasanya berfungsi dengan baik. Cukup buka email dan unduh lampiran (tampaknya masuk ke kartu SD) dan klik lagi dan itu terinstal.

Tetapi kemudian suatu hari itu tidak berfungsi, dan ternyata itu karena saya menghubungkan ponsel ke PC pengembangan saya melalui USB, dan itu menempatkan kartu SD dalam mode atau sesuatu yang berbeda. Jadi solusinya cukup dengan memutus sambungan telepon dari PC dan kemudian mengirim email lagi dan mengunduh lampiran lagi. Atau tempatkan koneksi USB dalam mode "hanya pengisian" sehingga kartu SD tidak "terhubung" ke PC.

RenniePet
sumber
0

Anda mungkin juga ingin memeriksa log di perangkat untuk melihat apakah itu sesuatu yang sederhana seperti masalah izin. Anda dapat memeriksa log menggunakan adbdari komputer host / debug:

adb logcat

Atau jika Anda memiliki akses ke konsol (atau saat menggunakan Android-x86 get console dengan mengetik Alt+ F1) maka Anda dapat memeriksa log dengan menggunakan logcatperintah:

logcat
Pierz
sumber
0

Saya memiliki masalah yang sama menggunakan file apk yang diekspor dari android‌ Tools > Export. Saya menggunakan file apk di folder bin dan berhasil!

File apk PS di folder bin dibuat setelah pertama kali Anda menjalankan aplikasi di eclipse.

Ali Sheikhpour
sumber
0

gunakan di dalam build.gradle (Module: app)

 minSdkVersion 14
    targetSdkVersion 28
SHUBHASIS MAHATA
sumber
Anda harus menjelaskan mengapa min versi 14 dan 28 ditargetkan. Periksa juga pemformatan Anda;)
m02ph3u5
0

Saya mengalami masalah ini yang Parse Error : There is a problem parsing the package. saya uji pada Android-8. Saya memiliki apk yang sama dengan tanda tangan yang sama, semuanya sama tanpa nomor versi dan nama versi. Aplikasi sedang dipasang ketika saya menginstalnya secara manual tetapi kesalahan ini terjadi ketika saya mengunduh dan menginstal pembaruan secara terprogram. Kemudian saya menemukan penyebab masalah saya.

Ada opsi untuk memeriksa canRequestPackageInstalls () Ketika metode ini mengembalikan nilai true maka aplikasi berhasil diinstal. Itu selalu kembali salah dalam kasus saya.

Jadi pertama-tama saya periksa ini dan kemudian biarkan pengguna mengunduh dan menginstal pembaruan.

Di onCreate ()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            if (!packageManager.canRequestPackageInstalls()) {
                    startActivityForResult(
                        Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).setData(
                            Uri.parse(String.format("package:%s", packageName))
                        ), requestCodeqInstallPackage
                    )
                } else {
                    canInstallPackage = true
                }

        }

Di onActivityResult ()

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
            if (requestCode == requestCodeqInstallPackage && resultCode == Activity.RESULT_OK) {
                if (packageManager.canRequestPackageInstalls()) {
                    canInstallPackage = true
                }
            } else {
                canInstallPackage = false
                Toast.makeText(mContext, "Auto update feature will not work", Toast.LENGTH_LONG)
                    .show()
            }
    }

Kemudian ketika perlu menginstal pembaruan kemudian-

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   if(canInstallPackage){
      doInstallAppProcess()
   }else{
        // generate error message
   }
}

Semoga bisa membantu seseorang.

Rasel
sumber
-1

Saya mengalami pesan kesalahan "Parse error: Ada masalah saat mengurai paket" dengan APK saya yang ditandatangani seperti yang lain, tetapi saya curiga hal itu dapat disebabkan oleh alasan yang berbeda.

Untuk menguji ini saya melakukan yang berikut:

Setup Windows 8.1 Eclipse ADT Build: v22.6.2-1085508

Saya membuat aplikasi Helloworld baru yang menerima semua default.

Saya menjalankan aplikasi pada emulator dan perangkat langsung dengan sukses.

Saya kemudian melakukan sideload dan menginstal apk ke perangkat langsung saya dan menjalankannya dengan sukses.

Itu telah menghasilkan apk di folder bin dengan ukuran 782 KB.

Saya kemudian mengekspor aplikasi Helloworld ke folder bin yang sama yang menandatangani aplikasi dari penyimpanan kunci saya yang telah berhasil digunakan di masa lalu untuk dipromosikan ke Google Play.

Itu membuat APK dengan ukuran 385 KB (menggantikan apk asli).

Saya melakukan sideload apk ke perangkat saya dan ketika saya pergi untuk menginstalnya saya mendapat pesan kesalahan "Parse error: Ada masalah saat mengurai paket" (ini adalah paket yang sama yang di-sideload dan diinstal ketika dilakukan sebagai bentuk yang tidak diekspor).

William Bell
sumber