2011年7月10日

Android "剖析程式時發生問題" 的原因

最近自己在寫 Android 的程式,結果我發現原本在 emulator 上面可以跑的 APK,丟到我的 HTC Desire HD 會有以下問題:

  1. 將 APK 放到 SD 卡上面,用程式瀏覽器安裝時,出現「剖析程式時發生問題」的錯誤訊息
  2. 改用 adb install 則會出現 Failure [INSTALL_FAILED_OLDER_SDK]
  3. 用 Eclipse 直接 online run 程式,則變成 ERROR: Application requires API version 11. Device API version is 10 (Android 2.3.3).

研究許久,才發現當初一開始玩的時候想要直接用 Honeycomb (Android 3.0,API level = 11),後來把 APK 丟到 Gingerbread (Android 2.3,API level = 10) 的手機才會發生這個現象。

原先 Google 有在 AndroidManifest.xml 中定義最小支援的作業系統版本  -- android:minSdkVersion,故需要將下面這個欄位的值從 11 改成 10 就可以了。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mytest"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="11" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MytestActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

12 則留言: