Android 2.3.3 Eclipse Version: 3.7.0 LogCat Console
报错信息:
[2012-02-15 10:24:31 - taobao] ------------------------------ [2012-02-15 10:24:31 - taobao] Android Launch! [2012-02-15 10:24:31 - taobao] adb is running normally. [2012-02-15 10:24:31 - taobao] Performing com.taobao.htc.Start activity launch [2012-02-15 10:24:31 - taobao] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'htc' [2012-02-15 10:24:31 - taobao] Uploading taobao.apk onto device 'emulator-5554' [2012-02-15 10:24:36 - taobao] Installing taobao.apk... [2012-02-15 10:24:39 - taobao] Installation error: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION [2012-02-15 10:24:39 - taobao] Please check logcat output for more details. [2012-02-15 10:24:39 - taobao] Launch canceled!
发生错误原因分析:
安装解析失败,遇到未知错误。
分析AndroidManifest.xml,android:versionCode引用自定义资源
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.taobao.htc" android:versionCode="@string/app_versionCode" android:versionName="@string/app_versionName">
在strings.xml中也有app_versionCode对应值
Xml代码
两部分配置在Eclipse中均未提示错误。
根据在AndroidManifest.xml中直接配置versionCode值的经验,其值应为整数,否则Eclipse报错。
error: Error: String types not allowed (at 'versionCode' with value 'htc'). error: Error: Float types not allowed (at 'versionCode' with value '360.0'). error: Error: Boolean types not allowed (at 'versionCode' with value 'true').
解决办法:
修改xml配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.taobao.htc" android:versionCode="@integer/app_versionCode" android:versionName="@string/app_versionName"> <?xml version="1.0" encoding="utf-8"?> <resources> <integer name="app_versionCode">360</integer>重新运行,正常。
不管是直接配置,还是使用引用资源,android:versionCode的值都只能是整数。
引用资源,一定要使用可用的数据类型。
PS:Eclipse的Problems并不是所有错误都能给出提示。