Helpex - Trao đổi & giúp đỡ Đăng nhập
110

Tôi gặp lỗi này khi cài đặt ứng dụng android ( Parse Error : There is a problem parsing the package.). Tôi đã làm các bước sau.

  1. Lần đầu tiên tôi đã cài đặt ứng dụng và nó hoạt động tốt.

  2. Tôi đã thực hiện các thay đổi đối với ứng dụng hiện có và thay đổi phiên bản không có trong tệp kê khai.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
    
  3. Sau đó, tôi xuất ứng dụng và kết thúc quá trình ký mã. Đối với điều này, Nhấp chuột phải vào nút Dự án của bạn> chọn Xuất. Ở đó bạn sẽ thấy một trình hướng dẫn. Thực hiện theo các bước và hoàn tất quá trình ký mã.

  4. Tôi nhận được tệp ARDemo.apk, Sau đó, tôi đổi tên nó thành ARDemo1.apk

  5. Sau đó, tôi chuyển tệp apk này sang thẻ SD của điện thoại di động và bắt đầu cài đặt, tôi gặp lỗi ở trên.

Tôi đã googled, họ nói rằng có vấn đề với việc giải nén tệp kê khai.

Bất cứ ai có thể cho tôi biết những gì có thể bị sai với tôi?

110 hữu ích 5 bình luận 398k xem chia sẻ
27 trả lời 27
51

Bạn nói rằng lần đầu tiên bạn cài đặt ứng dụng, nó hoạt động tốt.

Sự khác biệt duy nhất trong các bước bạn đã nêu giữa hai phiên bản là:

  1. Số phiên bản (Tôi giả định rằng điều này không tham gia vào việc phá vỡ bất cứ điều gì)
  2. Mật mã
  3. Tên của tệp .apk

Hãy thử đổi tên tệp ARDemo1.apk thành ARDemo.apk (đảm bảo sao lưu phiên bản cũ hơn) và xem điều đó có hữu ích không. Tôi đoán là nó có liên quan gì đó đến tên của apk.

Nếu nó vẫn không hoạt động, thì bạn có thể loại bỏ tên của tệp apk là nguồn gốc của sự cố và bắt đầu điều tra 2) bằng cách xây dựng lại phiên bản cũ của bạn và xem bạn có gặp phải sự cố tương tự hay không. Nếu sự cố không tồn tại với phiên bản được xây dựng lại của mã cũ thì bạn biết đó phải là điều gì đó liên quan đến mã của bạn.

Tôi hy vọng điều đó sẽ đưa bạn đến một nơi nào đó.

Chúc mừng, Joseph

51 hữu ích 5 bình luận chia sẻ
46

Cài đặt có thể gây ra lỗi được chỉ định ít nhất trong các trường hợp sau:

  • Tên của gói được thay đổi sau khi ký : Sử dụng tên chính xác như gói đã ký (thay vào đó, điều chỉnh tên trong Tệp kê khai)
  • Gói được biên dịch dựa trên cấp API cao hơn : Chỉnh sửa cấp API trong tệp kê khai
  • Gói được thực thi từ thẻ SD : Chạy (cài đặt) apk -tệp từ bộ nhớ điện thoại HOẶC sử dụng lệnh adb để cài đặt nó
46 hữu ích 5 bình luận chia sẻ
24

Tôi chỉ thấy lỗi phân tích cú pháp khi phiên bản Android trên thiết bị thấp hơn phiên bản mà ứng dụng được biên dịch. Ví dụ: nếu ứng dụng được biên dịch cho hệ điều hành android v2.2 và thiết bị của bạn chỉ có hệ điều hành android v2.1, bạn sẽ gặp lỗi phân tích cú pháp khi cố cài đặt ứng dụng.

24 hữu ích 1 bình luận chia sẻ
14

Lý do là apk không được ký. Sau khi apk được ký, sự cố sẽ được giải quyết. http://ionicframework.com/docs/guide/publishing.html Vui lòng sử dụng liên kết trong hướng dẫn để đăng nhập apk.

14 hữu ích 3 bình luận chia sẻ
14

Thay vì chụp trong bóng tối, hãy tìm nguyên nhân gây ra lỗi này bằng cách cài đặt nó qua adb:

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

Thay thế emulator-5555bằng tên thiết bị của bạn. Bạn có thể lấy danh sách bằng cách sử dụng:

adb devices

Khi thất bại, nó sẽ đưa ra một lý do. Các lý do phổ biến và cách khắc phục:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATES: Tham khảo
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLE: Tham khảo
14 hữu ích 2 bình luận chia sẻ
7

Kiểm tra xem thiết bị của bạn có hỗ trợ phiên bản bạn đã chỉ định trong minSdkVersion trong AndroidManifest.xml hay không. Nếu không chỉ định phiên bản thấp hơn và thử lại

7 hữu ích 0 bình luận chia sẻ
6

Nếu bạn đang biên dịch và xuất tệp apk của mình theo SDK phiên bản 2.1, thì tệp này sẽ không hoạt động trên bất kỳ phiên bản Android nào bên dưới tệp xuất SDK "2.1" của bạn. Phần mềm Android tương thích về phía trước không tương thích ngược. Ví dụ: nếu bạn đang lập trình bằng gói android NDK (phần bổ sung ann cho android SDK) cho phép phát triển trong họ C / C ++, thì gói này chỉ tương thích với android 2.3, android phiên bản 2.2 trở xuống chỉ hỗ trợ các bản dựng java. Do đó, bạn sẽ lặp lại lỗi "Có sự cố khi phân tích gói".

6 hữu ích 0 bình luận chia sẻ
4

Tôi không lặp lại những gì được hướng dẫn ở đây để nhập Kho khóa, mật khẩu, v.v. Hãy thử

Xây dựng -> Tạo APK đã ký -> [Đầu vào] --- Tiếp theo ---> chọn CẢ HAI

  • V1 (Chữ ký của Jar)
  • V2 (Chữ ký APK đầy đủ)

Tôi không biết tại sao, nhưng ít nhất nó đã hiệu quả trong tình huống của tôi.

4 hữu ích 2 bình luận chia sẻ
3

Một khả năng khác là bạn đã lưu tệp apk vào thư mục RIÊNG TƯ của ứng dụng và sau đó cố gắng cài đặt (bằng cách bắt đầu một ý định từ mã của bạn). trong trường hợp này, khi bạn bắt đầu có ý định, bạn gặp lỗi phân tích cú pháp gói. Trong trường hợp này, lỗi được nêu ra là về các vấn đề về quyền. Vấn đề là lưu tệp vào các thư mục riêng tư không phải là một thực tiễn tốt, tuy nhiên nếu bạn thực sự muốn làm điều đó, bạn nên ghi tệp trong MODE_WORL_READABLE khi tải xuống. Vui lòng xem xét rằng MODE_WORLD_READABLE không được dùng nữa và giải pháp này không phải là giải pháp tốt nhất vì nó có một số vấn đề bảo mật. Cách tốt nhất là lưu tệp của bạn vào bộ nhớ ngoài.

3 hữu ích 0 bình luận chia sẻ
2

Tôi gặp lỗi tương tự (Lỗi phân tích cú pháp, Có sự cố khi phân tích cú pháp gói) khi cố gắng cài đặt gói .apk từ email. Tôi đã có thể khắc phục sự cố bằng cách cài đặt trình cài đặt gói bên thứ 3 ApKatcher:

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

ApKatcher không phải là giải pháp duy nhất. Một đồng nghiệp của tôi đã khắc phục được sự cố bằng cách cài đặt Trình quản lý tệp Astro.

Bạn có thể tìm thấy cả hai ứng dụng trong Android Marketplace.

2 hữu ích 1 bình luận chia sẻ
1

Vấn đề tương tự, sử dụng mã "mượn" và được sửa đổi một chút này:

                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;

Cần thiết để thay đổi việc tạo tệp thành này (dấu phẩy thay vì dấu cộng trong Hàm tạo tệp, bị thiếu '/' sau thư mục tải xuống):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");
1 hữu ích 0 bình luận chia sẻ
1

Tôi có một cặp thẻ không hợp lệ trong tệp kê khai của mình.

<meta-data>
</meta-data>

Về cơ bản đã xảy ra khi tôi sao chép một meta-datamã mẫu xấu từ tệp pdf payu. Khỉ thật.

1 hữu ích 0 bình luận chia sẻ
1

Một lý do có thể là tên hoạt động của bạn không được xác định trong tệp kê khai

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

mã trên đã tạo ra cùng một vấn đề với tôi

1 hữu ích 0 bình luận chia sẻ
1

Một vấn đề khác gây ra lỗi này có thể là cài đặt APK từ điểm gắn thẻ SD bị hạn chế /mnt/media_rw/MicroSD.

Sử dụng điểm gắn kết không hạn chế /Removable/MicroSD.

1 hữu ích 0 bình luận chia sẻ
1

Và chỉ để giúp những người đọc mới có thể, một lý do khác có thể là lỗi trong tệp kê khai. Tôi đã gõ sai android:servicenhư android.servicevà chạy vào các lỗi tương tự ...

1 hữu ích 0 bình luận chia sẻ
1

Như đã đề cập bởi @Veneet Reddy, hãy cài đặt nó qua ADB.

Tới ADT Bundle / sdk / platform-công cụ quá khứ của bạn .apktập tin và chạy command prompt as administrator.

Sau đó chạy adb deviceslệnh sẽ liệt kê các thiết bị được kết nối hoặc trình giả lập đang chạy.

“Lỗi phân tích cú pháp: Đã xảy ra sự cố khi phân tích cú pháp gói” trong khi cài đặt ứng dụng Android

Sau đó chạy adb -s yourDeviceID install yourApk.apk

“Lỗi phân tích cú pháp: Đã xảy ra sự cố khi phân tích cú pháp gói” trong khi cài đặt ứng dụng Android

Lưu ý: gỡ cài đặt ứng dụng nếu bạn đã cài đặt trước khi cài đặt lại.

1 hữu ích 0 bình luận chia sẻ
0

Đối với bất kỳ ai khác gặp sự cố này, lần duy nhất tôi gặp lỗi này là khi phiên bản API trong cấu hình Bản dựng Android của bạn không khớp với những gì trên thiết bị thực.

Vào Eclipse và nhấp chuột phải vào dự án của bạn và chuyển đến thuộc tính. Chọn Android - MANG ĐẾN CHO BẠN MỤC TIÊU XÂY DỰNG ANDROID. Điều chỉnh mục tiêu của bạn để phù hợp với thiết bị và xem liệu điều đó có giải quyết được sự cố hay không.

0 hữu ích 0 bình luận chia sẻ
0

Tôi đã gặp sự cố này, ngay cả khi tôi chỉ định phiên bản minSDK và targetSDK chính xác. Vấn đề của tôi là, tôi đang sử dụng "android:theme="@android:style/Theme.NoTitleBar.Fullscreen"trong hoạt động trình khởi chạy, trên thiết bị Jellybean. Khi tôi loại bỏ thuộc tính này, nó đã hoạt động.

0 hữu ích 0 bình luận chia sẻ
0

Như một số câu trả lời khác đã đề cập, có thể có vấn đề khi cài đặt từ thẻ SD. Trong trường hợp của tôi, tôi đã phân phối ứng dụng của mình qua tệp đính kèm email và nó thường hoạt động tốt. Chỉ cần mở email và tải xuống tệp đính kèm (nó dường như đi vào thẻ SD) và nhấp vào nó một lần nữa và nó đã được cài đặt.

Nhưng rồi một ngày nó không hoạt động, và hóa ra là do tôi đã kết nối điện thoại với PC phát triển của mình qua USB và điều đó đã đặt thẻ SD ở một chế độ khác hoặc một cái gì đó. Vì vậy, giải pháp đơn giản là ngắt kết nối điện thoại khỏi PC, sau đó gửi lại e-mail và tải lại tệp đính kèm. Hoặc nếu không, hãy đặt kết nối USB ở chế độ "chỉ sạc" để thẻ SD không được "kết nối" với PC.

0 hữu ích 0 bình luận chia sẻ
0

Bạn cũng có thể muốn kiểm tra nhật ký trên thiết bị để xem liệu nó có đơn giản như vấn đề về quyền hay không. Bạn có thể kiểm tra nhật ký bằng cách sử dụng adbmáy chủ lưu trữ / gỡ lỗi:

adb logcat

Hoặc nếu bạn có quyền truy cập vào bảng điều khiển (hoặc khi sử dụng Android-x86, hãy tải bảng điều khiển bằng cách gõ Alt+ F1) thì bạn có thể kiểm tra nhật ký bằng cách sử dụng logcatlệnh:

logcat
0 hữu ích 0 bình luận chia sẻ
0

Tôi đã gặp sự cố tương tự khi sử dụng tệp apk được xuất từ android‌ Tools > Export. Thay vào đó, tôi đã sử dụng tệp apk trong thư mục bin và nó đã hoạt động!

Tệp apk PS trong thư mục bin được tạo sau lần đầu tiên bạn chạy ứng dụng trong eclipse.

0 hữu ích 0 bình luận chia sẻ
0

Tôi đã gặp sự cố này, Parse Error : There is a problem parsing the package. tôi đang thử nghiệm trên Android-8. Tôi có cùng một gói ứng dụng với cùng một chữ ký. Mọi thứ đều giống nhau mà không có số phiên bản và tên phiên bản. Ứng dụng được cài đặt khi tôi cài đặt theo cách thủ công nhưng lỗi này xảy ra khi tôi tải xuống và cài đặt các bản cập nhật theo chương trình. Sau đó, tôi đã tìm ra nguyên nhân của vấn đề của tôi.

Có một tùy chọn để kiểm tra canRequestPackageInstalls () Khi phương thức này trả về true thì ứng dụng được cài đặt thành công. Nó luôn luôn trả về false trong trường hợp của tôi.

Vì vậy, đầu tiên tôi kiểm tra điều này và sau đó cho phép người dùng tải xuống và cài đặt các bản cập nhật.

Trong 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
                }

        }

Trong 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()
            }
    }

Sau đó khi cần cài đặt bản cập nhật thì-

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

Hy vọng nó sẽ giúp ích cho ai đó.

0 hữu ích 0 bình luận chia sẻ
0

Trong trường hợp của tôi, tôi chỉ ký bằng chữ ký V2 (từ Android 7 trở đi) nhưng đã cố gắng cài đặt trên 5 và 6. Việc thêm V1 trong quá trình tạo / ký ARK đã khắc phục sự cố.

Xem Sự khác biệt giữa các phiên bản chữ ký - V1 (Chữ ký Jar) và V2 (Chữ ký APK đầy đủ) khi tạo APK đã ký trong Android Studio? .

0 hữu ích 0 bình luận chia sẻ
0

Trong trường hợp của tôi, bản dựng 1 đã được cài đặt chính xác trong điện thoại di động của tôi bằng cách sử dụng APK đã ký (cũng từ Cửa hàng Google Play). Nhưng khi tôi cập nhật ứng dụng với bản dựng 2 lần đầu tiên, tôi đã gặp sự cố khi cài đặt ứng dụng đó với APK đã ký vì tôi nhận được "Đã xảy ra sự cố khi phân tích gói".

Tôi đã thử một số phương pháp như được chỉ định ở trên. Nhưng không hoạt động.

Sau một thời gian, tôi chạy lại các lệnh

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-key.keystore app-release-unsigned.apk myappkeyalias
zipalign -v 4 app-release-unsigned.apk MyApp.apk

và đáng ngạc nhiên là nó đã hoạt động.

Có vẻ như đôi khi APK được tạo có thể bị hỏng. Vì vậy, việc chạy lại các lệnh jarigner và zipalign đã giải quyết được sự cố của tôi.

0 hữu ích 0 bình luận chia sẻ
0

sử dụng nó bên trong build.gradle (Mô-đun: ứng dụng)

minSdkVersion 14
targetSdkVersion 28

Lỗi này cũng xuất hiện khi phiên bản Android nhỏ hơn minSdkVersion

0 hữu ích 1 bình luận chia sẻ
0

Trong trường hợp của tôi, tôi đã viết <activity android:".Stopwatch"/> thay vì <activity android:name=".Stopwatch"/> trong tệp kê khai android.

Kiểm tra lại tệp kê khai và tệp gradle của bạn.

0 hữu ích 0 bình luận chia sẻ
-1

Tôi đang gặp phải cùng một thông báo lỗi “Lỗi phân tích cú pháp: Có sự cố khi phân tích cú pháp gói” với các APK đã ký của tôi như những người khác nhưng tôi nghi ngờ có thể do các nguyên nhân khác nhau.

Để kiểm tra điều này, tôi đã làm như sau:

Thiết lập Windows 8.1 Eclipse ADT Build: v22.6.2-1085508

Tôi đã tạo một ứng dụng Helloworld mới điển hình chấp nhận tất cả các giá trị mặc định.

Tôi đã chạy ứng dụng trên trình giả lập và thiết bị trực tiếp thành công.

Sau đó, tôi đã tải và cài đặt apk vào thiết bị trực tiếp của mình và chạy nó thành công.

Nó đã tạo một apk trong thư mục bin với kích thước 782 KB.

Sau đó, tôi đã xuất ứng dụng Helloworld vào cùng một thư mục thùng ký ứng dụng từ kho khóa của tôi, đã được sử dụng thành công trong quá khứ để quảng cáo lên Google Play.

Nó đã tạo một APK có kích thước 385 KB (thay thế cho apk ban đầu).

Tôi đã truyền tải apk vào thiết bị của mình và khi tôi cài đặt nó, tôi gặp lỗi “Lỗi phân tích cú pháp: Có vấn đề khi phân tích cú pháp gói” (đây cũng chính là gói đã truyền tải và cài đặt khi hoàn tất ở dạng không xuất).

-1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ android , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading