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>



彙整