2010-05-12 83 views
2

今天我決定開始開發Android OS。我去了他們的網站,下載了所有必需的軟件(Eclipse,Android SDK,Eclipse的ADT插件等)。我遵循提供的「Hello World」教程(link text)。我使用Android SDK 2.1。該程序幾乎完美無缺地工作。它在Android模擬器上運行良好,但不安裝在任何Android手機上。我不擁有Android手機,所以我有三個朋友試圖在他們的電腦上安裝該程序。
我們所用的電話是:Android「Hello World」教程程序。錯誤:[解析錯誤]解析包時出現問題

  1. 根植G1運行2.1
  2. 的Droid運行2.1
  3. 另一個Droid的運行2.1

我通過電子郵件發送.apk文件到自己的Gmail和訪問它通過Android模擬器。它運行並安裝包很好。然而,當我的朋友試圖安裝在他們的手機上,他們都遇到了這個錯誤: 「[解析錯誤]有一個問題解析包」

我想知道如果任何人有任何建議什麼可能是錯的。謝謝你的幫助。

+0

你簽署apk? – Macarse 2010-05-12 11:44:48

+0

您使用的軟件包名稱是什麼?您可能選擇的是與核心Android套件衝突的內容。 – 2010-05-12 13:53:24

+0

.apk名稱是「HelloAndroid2.apk」。我確實簽了包裹。我使用eclipse中的導出嚮導來創建密鑰庫,並使用創建的密鑰庫對包進行簽名。 – ConfusedDeveloper 2010-05-12 15:06:26

回答

2

你是如何安裝軟件包的?
您應該:

  • 從Android Market安裝AppManager。
  • 獲取SD卡上的.apk文件。
  • 啓動AppManager並點擊「菜單按鈕」。
  • 選擇「安裝」並安裝應用程序。

如果應用程序未顯示,請選擇「整個SD」以查看所有SD卡應用程序。

+0

好的。我會在早上嘗試。我們嘗試以兩種不同的方式安裝它: 1.將其卡在SD卡上。他們說,當他們將SD卡插入他們的手機中,並轉到.apk文件時,它立即嘗試安裝,並給他們那個錯誤。 2.我通過電子郵件將.apk文件發送到他們的Gmail帳戶,他們通過手機訪問Gmail並試圖從那裏安裝。它給出了同樣的錯誤。 我會讓他們知道接下來嘗試您的建議。謝謝您的幫助。 – ConfusedDeveloper 2010-05-12 06:43:09

+0

它工作。非常感謝。:D – ConfusedDeveloper 2010-05-13 00:19:33

0

您不應該使用自定義應用來安裝某些東西。簡單地嘗試從SD卡上打開它(好的,所以你需要一個文件管理器:p)或通過電子郵件直接訪問文件真的應該工作。有兩件事要檢查:

  1. 當我在評論中,你使用的包名是什麼?
  2. 是否有任何這些手機的設置允許安裝來自市場以外的應用程序?它通過設置 - >應用程序完成。如果沒有,那麼安裝可能不會被允許,因爲您可能沒有將應用程序作爲「完成的應用程序」簽名 - 默認情況下,它們使用調試密鑰進行簽名。

編輯:

我只是谷歌搜索周圍,和原來其他幾個人有過這樣的問題。然而,在每種情況下,它都以不同的方式解決了......在一種情況下,使用第三方文件瀏覽應用程序解決了這個問題。在another case中,開發人員在簽名和導出後重命名.apk文件,顯然這足以讓他打破它。但這對我來說沒有任何意義 - 我只是在手機上用三種不同版本對其進行了測試:使用調試密鑰簽名,使用「正確」鍵簽名並用正確的密鑰進行簽名,然後重命名。在每種情況下,該應用程序都被複制到我的SD卡上,並打開Astro(一個文件瀏覽程序),然後啓動內置的安裝程序應用程序。所有三個人都工作,所以我不知道其他人如何重命名他的.apk。

所以......我不知道。對不起:/也許嘗試從一個調試密鑰簽名的apk安裝它,或者從頭開始另一個項目,看看你的清單文件是否損壞。

爲了回答您的評論:

  1. 包名稱是com.example.helloandroidtwo樣式名稱。 APK名稱只是壓縮文件的名稱(APK只是zip文件!),不應有所作爲。你的包名看起來不錯,嗯。
  2. 事實證明,你確實已經正確地簽署了你的申請。生成這樣的密鑰庫會使它使用適當的密鑰而不是調試密鑰。我不認爲這會有所作爲,但值得檢查。我沒有打擾用適當的密鑰簽署我的應用程序,直到我真正將它們投放市場。
  3. 考慮到API級別7是好的,因爲所有的測試手機也都在運行級別7(v2.1)。通常情況下,您不希望將最小版本設置爲7,因爲這排除了大多數用戶,但這不應該成爲您的問題。但要確定,編輯項目屬性以將目標設置爲3級。除非在開始時下載了所有API級別,否則可能不會擁有它。使用Eclipse中的AVD Manager下載它。
+0

軟件包名稱是「HelloAndroid2.apk」我相信這是你正在尋找的形式,是正確的?除非你的意思是在源代碼中,在這種情況下,我把它命名爲:「package com.example.helloandroidtwo;」 他們三個都選中「未知來源」框。 至於調試密鑰,這裏是我在eclipse中做的: 導出 - >導出Android應用程序 - >選擇的項目HelloAndroid2->創建新的密鑰庫。然後我創建了一個新密碼,然後點擊下一個,創建一個新的別名,然後完成。這是否構成調試密鑰?如果是這樣,我將如何製作釋放鍵? – ConfusedDeveloper 2010-05-12 15:14:55

+0

另外,僅供參考,我使用的是Android 2.1 API。這是正確的使用,對嗎?因爲還有Google + Android 2.1 API。該教程說使用Android 2.1,所以這就是我所做的。 – ConfusedDeveloper 2010-05-12 16:15:25

+0

@ConfusedDeveloper:我編輯了我的答案以提供更多信息。 – 2010-05-12 17:01:53

0

最簡單的解決方案是使用瀏覽器通過http://mail.google.com訪問您的Gmail賬戶並使用鏈接下載附件。之後,您可以運行安裝,只要您啓用了非市場應用程序的安裝即可。

1

我最近遇到了同樣的問題。我通過從Andriod SDK(4.0.3)將應用程序移植到我將應用程序部署到(2.3.3)的手機支持的應用程序來解決此問題。

3

別擔心。這是一個小問題。我也花了一週時間,最後我得到了解決方案。只需轉到manifest.xml文件並執行下游的更改。

//uses-sdk android:minSdkVersion="14" 

只是將其更改爲

//uses-sdk android:minSdkVersion="3" 

或任何下級SDK版本,我們的設備支持。嘗試一下。並回答,無論你滿意與否。

2

轉到您的manifest.xml,只是刪除

使用-SDK安卓的minSdkVersion = 「14」