2009-09-29 126 views
77

安裝Android應用程序(Parse Error : There is a problem parsing the package.)時出現此錯誤。我做了以下步驟。安裝Android應用程序時出現「解析錯誤:解析程序包時出現問題」

  1. 我第一次安裝的應用程序,它工作正常。

  2. 我對現有應用程序進行了更改,並更改了清單文件中的版本號。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1"> 
    
  3. 然後我導出應用程序並完成代碼簽名過程。 爲此,請右鍵單擊您的項目節點>選擇導出。在那裏你會看到一個巫師。按照步驟完成代碼簽名。

  4. 我得到了ARDemo.apk文件,然後,我改變了它的名字ARDemo1.apk

  5. 然後我運這個apk文件到手機SD卡,開始我得到了上述錯誤安裝。

我用Google搜索了一下,他們說解決清單文件的問題。

任何人都可以告訴我什麼可能是我的錯?

+4

只是想爲什麼重命名成了一個問題? – Mikey 2011-02-22 12:25:53

+0

你好邁克,我在出口後改了名字。這就是爲什麼它給錯誤。如果我們在導出時指定diff名稱對我來說不是問題。 – Raghu 2011-02-22 12:25:53

+0

爲什麼SDK版本很重要?如果我使用SKD 2.1構建並且想要在2.0上使用它,爲什麼它會成爲一個問題? – 2011-02-22 12:26:00

回答

39

你說你第一次安裝它的應用程序工作得很好。

你兩個版本之間介紹的步驟,唯一的區別是:

  1. 版本號(我假設 ,這沒有參加 打破任何東西)
  2. 代碼
  3. .apk文件的名稱

嘗試將ARDemo1.apk文件重命名爲ARDemo.apk(確保備份舊版本),看看是否有幫助。我的猜測是它與apk的名字有關。

如果它仍然不起作用,那麼你可以消除apk文件的名稱作爲問題的根源,並開始調查2)重建舊版本,看看你是否再次遇到同樣的問題。如果舊代碼的重建版本不存在問題,那麼您知道它必定與您的代碼有關。

我希望你能找到某個地方。

乾杯, 約瑟夫

+0

嗨約瑟夫, 你的猜測是正確的。我將apk文件重命名爲較早的一個。它的工作原理...... 非常感謝你的幫助..... – Raghu 2009-10-05 03:25:29

+0

我很高興我能幫助。 – user175750 2009-10-29 20:28:51

+0

嗨,我正面臨類似的問題。我正在從網頁鏈接下載應用程序。它完美地位於移動SD卡上。但是,當我試圖安裝它顯示此錯誤。我沒有簽署我的應用程序,基本上我是Android應用程序開發的新手。任何類型的幫助表示讚賞:) – ayachama 2012-05-02 13:11:03

18

我只看到了解析錯誤時,設備上的Android版本比應用程序被編譯的版本低。例如,如果該應用程序是針對android操作系統v2.2編譯的,並且您的設備僅具有android操作系統v2.1,則當您嘗試安裝該應用程序時,您會得到一個分析錯誤。

+0

我剛纔被那個打擊了,花了很長時間才弄清楚! – olafure 2011-08-07 19:27:14

6

如果您在SDK 2.1版下編譯和導出您的apk文件,它將不會在您的SDK導出「2.1」之下的任何Android版本上運行。 Android軟件向前兼容不向後兼容。例如,如果您使用Android NDK(annad附加到android SDK)程序包進行編程,該程序包允許在C/C++系列中進行開發,則這僅與Android 2.3兼容,Android 2.2和以下版本僅支持Java構建。因此,您將重新使用「解析軟件包時出現問題」錯誤。

+0

當我更改爲AVD 2.3時它工作。 – ricardo 2012-12-13 19:12:09

37

安裝可以提供至少指定的錯誤包括以下情況:

  • 包的名稱簽名後改變:作爲簽名的軟件包使用的確切名稱(而不是在清單調整名稱)
  • 包編譯針對更高級別的API:更正清單文件API級別
  • 包從SD卡執行:運行(安裝)APK -file˚F rom手機內存或使用adb命令來安裝它
+0

我認爲還有其他的條件可以做到這一點。例如,請參閱我對堪薩斯語的回答的評論,關於從電子郵件安裝時獲取此錯誤消息。 – 2013-01-19 23:10:53

+0

這裏的最佳答案。對我來說,它是在簽名後更改包的名稱。非常感謝。 – 2013-08-15 07:18:31

+0

我假設你需要有一個紮根的手機才能夠使用'adb install'安裝它? – abbood 2014-02-22 07:52:58

2

我試着從電子郵件安裝.apk包時得到了同樣的錯誤(解析錯誤,解析包的問題)。我可以通過安裝第三方軟件包安裝ApKatcher來解決這個問題:

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

ApKatcher是不是唯一的解決辦法。我的一位同事通過安裝Astro文件管理器解決了這個問題。

您可以在Android Marketplace中找到這兩個應用程序。

+0

要添加另一個數據點在這裏,從安裝時我也被收到此錯誤電子郵件,但是當我使用線纜和adb安裝相同的包時它安裝得很好。不幸的是,我試圖通過雅虎郵件進行安裝,所以我不認爲ApKatcher可以提供幫助。 – 2013-01-19 23:09:54

0

對於任何有此問題的人,唯一一次我得到這個錯誤的時候,你的Android Build配置中的API版本與物理設備上的內容不匹配。

進入Eclipse並右鍵單擊您的項目並轉到屬性。選擇Android - 讓您可以進行Android構建目標。調整你的目標以匹配設備,看看是否能解決問題。

1

檢查您的設備是否支持您在AndroidManifest.xml中的minSdkVersion中指定的版本。如果沒有指定較低版本並再試一次

+0

爲我工作,謝謝。 – 2015-10-27 22:11:13

-1

我遇到了與我簽名的APK相同的「解析錯誤:解析軟件包時出現問題」錯誤消息,但我懷疑它可能是由不同的原因引起的。

爲了驗證這一點,我做了以下內容:

安裝 的Windows 8.1 的Eclipse ADT 體形:v22.6.2-1085508

我產生一個典型的新的Helloworld應用程序接受所有默認值。

我在模擬器和現場設備上成功運行了應用程序。

然後我將sideload加載並安裝到我的實時設備上併成功運行它。

它在bin文件夾中生成了一個大小爲782 KB的apk。

我,然後出口將HelloWorld應用已經成功地使用在過去提升至谷歌播放相同的bin文件夾從我的密鑰存儲簽名的應用程序。

它創建的APK具有尺寸385 KB(替換原始APK)的。

我將apk文件加載到我的設備中,當我去安裝它時,出現錯誤「解析錯誤:解析軟件包時出現問題」(這是與非導出文件相同的軟件包,形成)。

1

而只是爲了幫助可能的新讀者,另一個原因可能是在清單文件中的錯誤。我錯誤地輸入了android:service作爲android.service並且遇到了同樣的錯誤...

0

我有這個問題,即使我指定了正確的minSDK和targetSDK版本。我的問題是,我在啓動器活動中使用"android:theme="@android:style/Theme.NoTitleBar.Fullscreen",在Jellybean設備上。當我刪除這個屬性時,它工作。

1

類似的問題,使用這種「借用」,並略作修改代碼:

   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; 

需要改變文件創建到這個(逗號而不是加在文件的構造,在下載後失蹤「/」目錄):

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

另一種可能性是,已保存的apk文件到應用程序專用文件夾,然後嘗試安裝(通過啓動從代碼的意圖)。在這種情況下,當你開始意圖時,你會得到錯誤解析包。在這種情況下,引發的錯誤是關於權限問題。重點在於將文件保存到私人文件夾不是一個好習慣,但是如果您真的想要這樣做,那麼在下載文件時應該在MODE_WORL_READABLE中寫入文件。請認爲MODE_WORLD_READABLE已被棄用,並且此解決方案不是最好的,因爲它存在一些安全問題。最好的辦法是將文件保存在外部存儲器中。

1

我在我的清單文件壞標籤對。

<meta-data> 
</meta-data> 

基本上得到了時,我複製了payu pdf文件壞meta-data示例代碼。廢話。

11

原因是APK未簽名。 apk簽名後,問題就會解決。 http://ionicframework.com/docs/guide/publishing.html 請使用說明鏈接簽署apk。

+0

這裏同樣的問題。在簽署apk之後,它按預期工作。 – 2016-03-08 00:32:01

+2

這對Xamarin Android版本來說是一個問題 - 它首先在歸檔管理器中創建一個未簽名的APK。您必須選擇「分發」才能創建可以安裝的已簽名APK。 – 2016-11-15 08:52:56

+0

添加到dodgy_coder寫的東西:對[Xamarin.Android 7或7以上(https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_2_-_signing_the_android_application_package/)或[更早版本]( https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_2_-_signing_the_android_application_package/visual-studio-xa-4.2.6-to-6.1/)。 – Veverke 2017-03-01 12:50:54

0

一個原因可能是,你的activity'name沒有在清單

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

上面的代碼定義是創造我

0

同樣的問題,作爲一對夫婦的其他答案已經提到,從SD卡安裝時可能會出現問題。在我的情況下,我通過電子郵件附件分發我的應用程序,它通常工作正常。只需打開電子郵件並下載附件(它顯然是SD卡),然後再次單擊並安裝。

可是有一天,它不工作,它原來是因爲我不得不通過USB連接到我的開發PC手機,而放置在SD卡在不同的模式或什麼的。因此,解決方案只需將手機與PC斷開連接,然後再次發送電子郵件並再次下載附件。否則,將USB連接置於「僅充電」模式,以使SD卡不與PC「連接」。

1

導致此錯誤的另一個問題可能是從受限制的SD卡安裝點/mnt/media_rw/MicroSD安裝APK。

使用無限制掛載點/Removable/MicroSD

0

您可能還想檢查設備上的日誌,看看它是否像權限問題一樣簡單。您可以從主機/調試計算機檢查使用adb日誌:

adb logcat 

或者如果你有機會到控制檯(或使用Android的86時,通過鍵入Alt鍵 + F1獲得控制檯),那麼你可以通過使用logcat命令檢查日誌:

logcat 
0

我利用android‌ Tools > Export出口apk文件有同樣的問題。我使用了bin文件夾中的apk文件,而且它工作正常!

附:在第一次在eclipse中運行應用程序後,會創建bin文件夾中的apk文件。

1

而是在黑暗中拍攝的,由經adb安裝它得到這個錯誤的原因:

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

替換emulator-5555與您的設備名稱。您可以使用獲得的列表:

adb devices 

一旦失敗,就會給一個理由。常見的原因及其解決方法:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATESReference
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLEReference
0

我不隨聲這裏指示輸入密鑰存儲,密碼等 嘗試

Build -> Generate Signed APK -> [ Input ] ---Next---> select BOTH

  • V1(Jar Signatu重)
  • V2(全APK簽名)

我不知道爲什麼,但至少在我的情況下工作。

相關問題