2012-06-17 71 views
0

我對某事有些困惑。在AndroidManifest中使用sdk

我寫了一個應用程序,並與以下規格測試了LG的盟友:

Android版本:0​​2.2.2

內核版本: 2.6.32.9

版本號: FRG83G

現在我想要安裝它(通過ADB安裝AppName.apk)上的HTC與以下規格:

Android版本:0​​2.3.3

內核版本: 2.6.35.10-gc0a661b HTC內核@和18-2#1

內部版本號: 4.24.651.1 CL61076

,我得到這樣的「錯誤解析包」

錯誤此處,我感到困惑。我想嘗試重複該問題。所以,我創建了規格AVD模擬器:

Android版本:0​​4.0.3

內核版本: 2.6.29-g46b05b2 vchtchetkine @ VC-IRV#28

內部版本號: google_sdk-ENG 4.0.4 MR1 302030測試鍵

而且....我可以用adb install命令成功安裝我的應用程序,它不會在HTC上安裝應用程序。

我不明白爲什麼我能夠使用'adb install'將它放在LG Ally和模擬器上,但我得到了HTC上的解析錯誤。

我以爲我可能需要在AndroidManifest,但爲什麼我能夠在沒有它的模擬器上安裝?

我的清單是下面(我刪除了簡潔的活動定義):

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mj.molepatrol" 
    android:versionCode="1" 
    android:versionName="1.0"> 


    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

     <uses-library android:name="com.google.android.maps" /> 

    </application> 

     <uses-permission 
     android:name="android.permission.READ_CALENDAR"> 
     </uses-permission> 

    <uses-permission 
     android:name="android.permission.WRITE_CALENDAR"> 
    </uses-permission> 

    <uses-permission 
     android:name="android.permission.EDIT_CALENDAR"> 
    </uses-permission> 

    <uses-permission android:name="android.permission.INTERNET" /> 

     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
</manifest> 
+0

也許只是acrivate不明來源的設置 –

+0

對不起,我應該提到,我想,與HTC並沒有幫助。 – user1126515

+0

您的問題標題提到'uses-sdk'標籤,但沒有在內容中提及它的任何內容......獲得該信息會很有幫助。 –

回答

0

這個可能的問題是,您使用的功能不可用的設備。如相機或NFC。

您只設置了minSdkVersiontargetSdkVersion對不對?

會有一些在清單中,宏達不喜歡,請發表您的的AndroidManifest.xml文件,所以我們可以看到細節,並弄清楚你

+0

SmartLemon 我嘗試將AndroidManifest添加到此評論中,但我超過了允許的字符數。我會嘗試將其添加到我原來的問題中,但這些編輯沒有顯示出來。 我的應用使用Google API作爲日曆,地點和地圖。 我不在清單中設置minSdkVersion或targetSdkVersion。 – user1126515

+0

你應該設置minSdk和targetSdk,這可能是它出錯的地方 – FabianCook

1

嘗試使用

<uses-sdk android:minSdkVersion="10">

它會解決你的問題。因爲,我閱讀本文檔有關的用途-SDK,

注意如果沒有聲明這個(使用-SDK安卓的minSdkVersion)屬性,系統假定爲「1」的默認值,這表明您的應用程序與Android的所有版本兼容。如果您的應用程序與所有版本不兼容(例如,它使用API​​ Level 3中引入的API),並且您尚未聲明適當的minSdkVersion,那麼當安裝在API級別小於3的系統上時,應用程序將在執行期間崩潰運行時試圖訪問不可用的API。出於這個原因,一定要在minSdkVersion屬性中聲明適當的API級別。

來源:Android Developers Website