1. 程式人生 > >Android call requires API level 12 的解決方案

Android call requires API level 12 的解決方案

程式碼:

class Type {
private tid ; //類別編號
private String name ;//名稱
private String note ;//描述
private SubType subTypes [] ;//子類別
public Type() {}
public Type (int tid,String name,String note){
this.tid = tid ;
this.name = name ;
this.note = note ;
}
public void setSubTypes(SubType subTypes []){
this.subTypes = subTypes ;
}
public SubType[] getSubTypes(){
return this.subTypes ;
}
public String getInfo(){
return "類別編號:"+this.tid +"名稱:"+this.name+"描述:"+this.note ;
}
}
class SubType {
private int stid ;
private String name ;
private String note ;
private Type type ;
public SubType(){}
public SubType(int stid,String name,String note){
this.stid = stid ;
this.name = name ;
this.note = note ;
}
public void setType(Type type){
this.type = type ;
}
public Type getType(){
return this.type ;
}
public String getInfo(){
return "類別編號:"+this.stid +"名稱:"+this.name+"描述:"+this.note ;
}
}//基本欄位
public class TestDemo01 {
public static void main(String args[]){
Type type = new Type(1,"圖形影象處理","處理只奧片") ;
SubType st1 = new SubType(10,"影象編輯","-") ;
SubType st2 = new SubType(20,"動畫設計","-") ;
SubType st3 = new SubType(30,"影象編輯","-") ;
st1.setType(type) ;
st2.setType(type) ;
st3.setType(type) ;
type.setSubTypes(new SubType[]{st1,st2,st3}) ;
System.out.println(type.getInfo()) ;
}

}

通過DOS編譯,提示錯誤:編碼GBK的不可對映字元:


首先,檢查本機區域語言設定中文沒有問題


然後右鍵properties--text file encoding 結果也是UTF-8


解決方法:

1執行時使用javac -encoding UTF-8 TestDemo01.java

編譯通過

2·使用記事本開啟Java原始檔,另存為選擇ANSI編碼


編譯通過!!!

說明:

ANSI:美國國家標準協會,系統預設的標準文字儲存格式。簡體中文編碼GB2312,實際上它是ANSI的一個內碼表  936

UTF-8:通用字集轉換格式,這是為傳輸而設計的編碼,2進位制,以8位為單元對Unicode進行編碼,如果使用只能在同類位組內支援8個位元的重要資料一類的就是傳輸內體,可選擇UTF-8格式。

在UTF-8裡,應為字元仍然跟ASCII編碼一樣,因此原先的函式庫可以繼續使用。而中文的編碼範圍是在0080~07FF之間,因此是2個位元組表示(但這兩個位元組和GB編碼的兩個位元組是不同的),用專門的Unicode處理類可以對UTF編碼進行處理。