1. 程式人生 > >Android錯誤引用自定義資源資料型別,造成安裝解析產生未知錯誤

Android錯誤引用自定義資源資料型別,造成安裝解析產生未知錯誤

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程式碼  

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="app_versionCode">360</string>

兩部分配置在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並不是所有錯誤都能給出提示。

相關推薦

Android錯誤引用定義資源資料型別造成安裝解析產生未知錯誤

Android 2.3.3 Eclipse Version: 3.7.0 LogCat Console   報錯資訊: [2012-02-15 10:24:31 - taobao] ------------------------

用typedef定義資料型別

嚴格說,它不是一種新型別,使用typedef一般用來達到以下幾個目的: 1,用來定義一種型別的別名,比如說一個型別名稱特別長,為了書寫方便和便於程式碼的閱讀,實現別名功能(複雜名字簡單化), typedef char* PCHAR; PCHAR pa, pb; struct Hello_

結合案例講解MapReduce重要知識點 ----------- 定義MapReduce資料型別(1)重寫Writable介面

重寫Writable介面 如下程式碼就是自定義mr資料型別,在wordcount類使用它。 WordCountWritable import java.io.DataInput; import java.io.DataOutput; import java.io.IOE

結合案例講解MapReduce重要知識點 ------- 使用定義MapReduce資料型別實現二次排序

自定義資料型別SSData import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import org.apache.hadoop.io.WritableCompa

使用Object物件的toString()方法定義判斷資料型別方法

Object.prototype.toString方法返回物件的型別字串 Object.prototype.toString.call(2) // "[object Number]" Obj

MapReduce資料型別定義MapReduce資料型別

MapReduce資料型別 資料型別都要實現Writable介面,以便用這些型別定義的資料可以被序列化進行網路傳輸和檔案儲存。自定義key資料型別的時候,因為需要對key進行排序,需要繼承java中的比較器,所以可以直接繼承WritableComparable

QT學習筆記(七)QDataStream傳遞定義資料型別

QT自帶的QDataStream只能傳遞它自己要求的資料型別。但是我們可以自己過載QDataStream& operator<<()和QDataStream& operator>>();mydatastream.h#ifndef MYD

Redis 儲存定義資料型別

Redis自帶的基本型別的操作可以自行查閱資料,網上可以輕易找到很多的相關的資料。 儲存自定義型別時需要進行序列化、反序列化。 1. Java示例程式碼 //定義需要儲存的資料 Student

【pytorch】定義讀取資料使用txt文字

使用txt文字讀入資料可以減少記憶體的需要,有時候自定義載入資料集是非常必要的,我下面的程式碼是針對影象的,並且帶有label的有監督的影象。先看程式碼: import numpy as np import os import torch.nn as nn from PIL import Ima

js javascript 定義json資料格式以變數作為鍵名定義鍵值對

js中的 json 格式資料,當用變數作為鍵(名)時,如:var a = $('#cid').val(); var b = $('#goods_name').val(); var j = {a:b}:這樣 a 是不會被解析的,正確寫法應該是:var a = $('#cid')

Android開發:定義介面的Dialog並且實現按鈕的監聽回撥

該專案適合想實現自定義dialog,有懶得折騰的人。 在安卓開發的時候,往往會碰到一些特別漂亮的dialog,比如這個圖片的: 很多這種型別的dialog,介面千變萬化,於是我建立了一個通用自定義dialog,可以實現以下功能: 1、介面的自定義,全部自己用xml定義介

Kubernetes CRD (CustomResourceDefinition) 定義資源型別

目錄 1、CRD (CustomResourceDefinition) 介紹 1.1 client-go 元件 1.2 Custom Controller 元件

android串列埠通訊接受定義協議資料解析問題

1.一般自定義的串列埠協議  串列埠傳輸介面底層是按位(bit)傳送的,上層是按byte傳送和接收的,但協議為了方便描述,每個byte用十六進位制數(0x00~0xFF)表示,範相當於十進位制的0~255,而byte為八位且是有符號型別,相當於十進位制的-128~127,明

Kubernetes1.5新特性:定義資源型別_Kubernetes中文社群

一、自定義資源型別 在Kubernetes1.5中,在CPU、記憶體、GPU三種類型資源的基礎上新增了一種資源型別:Opaque Integer Resources,從英文直接翻譯成不透明整數資源,但是我覺著應該翻譯成自定義資源型別。 如上圖所示:OpaqueIntResources屬性是一

Android定義網路資料載入等待框的簡單封裝

先上效果圖(在5.0以上機型顯示效果,如果是4.0會變為灰色): 自定義Dialog如下: public class LoadingCustom extends Dialog{ pr

android 如何在定義對話方塊中獲取edittext中的資料

在專案中忽然遇到這樣的問題,需要自定義對話方塊,對話方塊需要有一個輸入框,以便修改所選中的價格,然後點選確定之後,修改所顯示的價格。遇到的最大的問題就是如何能夠獲取到自定義對話方塊當中edittext輸入的數值,百度了很久,看到的答案都是如下: //得到自定義對話方塊

Android定義View的研究 -- 在XML中引用定義View

如果在一直使用SetContentView(new HellwView(this)覺得總是少了一點東西,少了什麼了,失去了Android中使用XML定義元件的便攜性,這種感覺讓人很不爽,呵呵,在這節裡我們會看到一個自定義View報錯的解決方法,讓我們來看看在XML中定義Vi

Android Studio 佈局中引用定義屬性不提示的問題

Eclipse裡面自定義屬性的名稱空間的宣告一般都是 xmlns:app="http://schemas.android.com/apk/res/com.xxx(包名) 而Android Stu

Hadoop——定義資料型別實現WritableComparable, 並且 分組排序

http://blog.csdn.net/u014432433/article/details/51104026 1. 在進行mapreduce程式設計時key鍵往往用於分組或排序,當我們在進行這些操作時Hadoop內建的key鍵資料型別不能滿足需求時, 或針對用例優化自定

Android定義View的屬性attr format取值型別

原文連結 1. reference:參考某一資源ID。 (1)屬性定義: <declare-styleable name = "名稱"> <attr name = "background" format = "reference" />