1. 程式人生 > >Android 建立專案遇到的問題(真實經歷)和一個簡單App專案

Android 建立專案遇到的問題(真實經歷)和一個簡單App專案

一、Android第一個專案:先看個專案,遇到的問題寫在了後面


1.Android 是一個專門針對移動裝置的軟體集,它包括一個作業系統,中介軟體和一些重要的應用程式

在用eclipse IDE開發android應用程式之前,你首先要建立一個Android工程,並且建立一個啟動配置,在此之後你才可以開始編寫,執行,以及除錯你的應用程式。

開啟Eclipse,單擊選單欄的“File”->把滑鼠游標移動到“New”->“Project...”在彈出的列表框中,在彈出的視窗中,展開“Android”項,選擇“Android Applicaion Project”,然後“Next”;在新彈出的視窗中按下圖提示填寫相關資訊,一路“Next”,直到點選“Finish”,這樣第一個Android程式就建立好了,這是你會發現Eclipse左邊多了一個你新建立的Android專案。


2.按照以下步驟為Eclipse版本的應用程式建立合適的啟動項:

   1). 開啟啟動項管理工具。
          o 在 Eclipse 3.3 (Europa)的版本中,酌情選擇Run > Open Run Dialog... or Run > Open Debug Dialog... 。
          o 在Eclipse 3.4 (Ganymede)版本中,酌情選擇Run > Run Configurations... or Run > Debug Configurations... 。
   2). 在左邊的工程型別列表選擇Android Application選擇,雙擊(或者點選右鍵選擇new),建立一個新的啟動項。
   3). 輸入啟動項名稱。
   4). 在Android標籤中,瀏覽要開始的工程和Activity 。
   5). 在Target標籤中,設定想要顯示的螢幕及網路屬性,以及其他任何模擬器啟動選項。
   6). 你可以在Common標籤中設定更多的選項.
   7). 按下Apply儲存啟動配置,或者按下Run或Debug()。



3.Hello, Android!

   1) New project

   2)會自動生成一個類“Helloworld ”

    package com.android.hello;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;

   public class Helloworld extends Activity {
      /** 活動第一次被建立後呼叫。**/
     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);

    //===========Main Code===================

    TextView tv = new TextView(this);
    tv.setText("Hello world!");

    //=====================================
     setContentView(tv);
      }

   }

   3)在Android裡,使用者介面由一些稱之為檢視的不同層次的類組成。一個檢視就是一個簡單的物件。如單選框,動畫控制元件,一個文字框(我們的例子裡的),我們稱處理文字的這樣一個子檢視就叫TextView。

   4)選擇Run>->Open Run  Configurations選單。下一步,選擇“Android Application”,點選在左上角(按鈕像一張紙上有個“+”號)或者雙擊“Android Application”。有個新的選項“New_configuration”。將名字改得更形象一點,如“Hello,Android”,然後按Browse按鈕選擇你的專案,(如果你Eclipse裡有多個Android專案需要開啟,確定要選擇正確)外掛會會自動掃描你專案裡的活動子類,然後在“活動”的下拉選單里加載。如果你的“Hello,Android”專案只有一個,它將被設定為預設專案,然後你可以繼續。點選“Apply”按鈕,點選“Run”按鈕,Android的模擬器啟動。一啟動你的程式就會出現,當一切OK,你可以看到:hello world!


4.你剛剛完成的“Hello world!”的例子使用的是我們稱為“可程式設計”的UI層,意思是你通過編寫程式碼來組建UI層。當你開發了足夠多的UI程式,你會發現一些很糟糕的現象: 一些小的變化需要你做大量的程式碼改動。你常常會忘記將View連線起來,這樣會導致一些錯誤,浪費你很多時間去除錯程式碼。這就是Android為什麼提供一個可變化的UI開發模組:基於XML的檔案。最簡單解釋這個概念就是演示個例子。這裡有個XML的檔案,它能達到和你剛才完成程式碼同樣的效果:

     <?xml version="1。0" encoding="utf-8"?>
     <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:text="Hello world!"/>

      通常Android裡XML檔案結構是很簡單的。只是一些標記的樹形集合,每個標記就是一個檢視類。在這個例子中,它就是一個簡單的TextView元素的樹,你可以在XML檔案裡使用任何擴充套件類的名字作為你的標記,這也包括你在你的自己的程式碼裡定義的名字。這個結構使得你能使用簡單結構和語法快速的組建UI,這種模型就像網站的開發模型,你能夠將UI和程式邏輯分開,單獨獲取或者填充資料。4個XML屬性1.png and 2.png



Eclipse外掛為你建立了這些XML檔案中的一個。在我們上面的範例,我們根本沒有使用過它。在包的管理器裡,展開目錄/res/layout,編輯
main.xml 檔案,替換上面的文字然後儲存修改。在從程式碼目錄裡開啟R.java檔案,你可以看到他們像這樣:

        public final class R {
public static final class attr {
};
public static final class drawable {
public static final int icon=0x7f020000;
};
public static final class layout {
public static final int main=0x7f030000;
};

public static final class string {
public static final int app_name=0x7f040000;
};
};

最後要做的就是使用你最新版本的XML修改你的Helloworld程式碼去代替以前的編碼。這個有例子說明重新寫過的類的模型,你可以看到,程式碼變得非常簡單:

      //============Main Code===============

      public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      }

      //====================================

和之前看到的一樣!這點表明兩種不同的構建方式都能達到同樣的結果。



二、Android初學者建立專案遇到的問題(真實經歷)

1.當環境自認為都配置好後,於是在Eclipse嘗試新建Android工程,建到最後一步無法finished,提示如下:


提示很明顯,缺少一個依賴包,下載這個library就好了。個人認為最快捷的方法就是找到包含這個library的SDK,重要的是覆蓋原來的tools目錄,覆蓋後重新開啟SDK Manager,發現就有這個library,這個辦法雖然很笨,但是個人認為很實用,特別是對於無法更新SDK的朋友,畢竟百度資源很豐富(注意:如果不想更新SDK,最好下載的SDK是全量包,包含儘可能多的專案所需API):


2.當工程建立好後,本來以為可以正常的編碼了,結果發現在Eclipse中建立一個工程有時會報這樣的錯誤ERROR: In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing這樣的錯誤一般是有環境或者Eclipse工具導致的,換一個工作空間或者重新匯入一下就會好的。結果換了一個工作空間,發現這個問題也沒有了

PS:谷歌的相容性不太給力,建議建立工程的時候別選2x~5x,否則可能工程也會報錯,可以選2x~4x和4x~5x之類的


3. 當一切都處理好,弄了個Hallo_World來試試工程是否能執行(用eclipse新建一個android應用程式之後,點住這個專案,然後右鍵選單--> 
run as --> Android application 即可,這個過程也會稍微的長點,大概2到3分鐘,因為這個模擬器要跑一遍Android系統之後才能安裝載入你的應用程式,啟動完成後一般都需要模擬器解鎖,老的版本你可以按Menu鍵,新的版本你需要手動滑動螢幕上的解鎖鍵。 )這時模擬器又給我報錯:

Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

別人提供最簡單的解決方法是:直接在新建模擬器的時候把它的記憶體RAM設定在1024以下就可以,最好設定成512


1.當環境自認為都配置好後,於是在Eclipse嘗試新建Android工程,建到最後一步無法finished,提示如下:


提示很明顯,缺少一個依賴包,下載這個library就好了。個人認為最快捷的方法就是找到包含這個library的SDK,重要的是覆蓋原來的tools目錄,覆蓋後重新開啟SDK Manager,發現就有這個library,這個辦法雖然很笨,但是個人認為很實用,特別是對於無法更新SDK的朋友,畢竟百度資源很豐富(注意:如果不想更新SDK,最好下載的SDK是全量包,包含儘可能多的專案所需API):


2.當工程建立好後,本來以為可以正常的編碼了,結果發現在Eclipse中建立一個工程有時會報這樣的錯誤ERROR: In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing這樣的錯誤一般是有環境或者Eclipse工具導致的,換一個工作空間或者重新匯入一下就會好的。結果換了一個工作空間,發現這個問題也沒有了

PS:谷歌的相容性不太給力,建議建立工程的時候別選2x~5x,否則可能工程也會報錯,可以選2x~4x和4x~5x之類的


3. 當一切都處理好,弄了個Hallo_World來試試工程是否能執行(用eclipse新建一個android應用程式之後,點住這個專案,然後右鍵選單--> 
run as --> Android application 即可,這個過程也會稍微的長點,大概2到3分鐘,因為這個模擬器要跑一遍Android系統之後才能安裝載入你的應用程式,啟動完成後一般都需要模擬器解鎖,老的版本你可以按Menu鍵,新的版本你需要手動滑動螢幕上的解鎖鍵。 )這時模擬器又給我報錯:

Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

別人提供最簡單的解決方法是:直接在新建模擬器的時候把它的記憶體RAM設定在1024以下就可以,最好設定成512