最近自己在寫 Android 的程式,結果我發現原本在 emulator 上面可以跑的 APK,丟到我的 HTC Desire HD 會有以下問題:
- 將 APK 放到 SD 卡上面,用程式瀏覽器安裝時,出現「剖析程式時發生問題」的錯誤訊息
- 改用 adb install 則會出現 Failure [INSTALL_FAILED_OLDER_SDK]
- 用 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>
11 則留言:
感謝。
不客氣~
不好意思
請問你是用哪個程式改數字的呢?
用一般文本編輯器開AndroidManifest.xml都會亂碼
那是用電腦改還是在手機中改呢?
謝謝
這個是要在 build APK 之前就要改了,不知道你是不是在拿到 APK 以後才去打開來改的呢?
是非自寫的apk
請問這樣可以改嗎?
我認為應該不行... 因為當初寫 APK 的人應該可能只想要供某個特定的 Android 版本設計的,後來再改可能也會出問題
嗯好
謝謝你的消息^^
關於這個問題
我找了很多網站
最後問了其他人也解決不了
所以真的很感謝你!
辛苦你了^^
小事一樁 ^^
??
45656
張貼留言