最近因爲工做上的緣由,開始學習Android開發,在入門的時候就遇到了很多的坑,遇到的第一個坑就是"新建android工程的時候eclipse沒有自動生成MainActivity和layout佈局」,項目的建立過程以下圖所示:java
展開HelloAndroid項目,能夠看到建立好的項目的目錄結構,以下圖所示:android
個人項目是採用的是官方集成了ADT的Eclipse(adt-bundle-windows-x86_64-20140702)建立的,建立項目時選擇的是【Blank Activity】,結果生成的項目的目錄結構就成了如上圖所示的樣子,正常狀況下,Eclipse會在src目錄下建立一個名字爲me.gacl.helloandroid的包,而後裏面會有一個MainActivity.java的文件,而後layout文件夾中會有一個activity_main.xml文件,可是如今這兩個都沒有生成。因爲HelloAndroid項目中沒有可運行的Activity,那麼直接運行HelloAndroid項目是沒法運行的,以下圖所示:windows
在Eclipse中運行Android項目,操做步驟以下圖所示:app
運行會在Console打印出 "No Launcher activity found!",而且模擬器也不運行,以下圖所示:eclipse
下面說一下"No Launcher activity found!"錯誤,叫Android的項目中都會有一個AndroidManifest.xml配置文件,以下圖所示:佈局
咱們看一下AndroidManifest.xml裏面的代碼,以下所示:學習
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="me.gacl.helloandroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > </application> </manifest>
能夠看到,裏面沒有配置啓動項,緣由是由於Eclipse在建立項目時沒有幫咱們自動生成MainActivity.java和activity_main.xml文件,這應該是Eclipse在建立【Blank Activity】的bug,在<application></application>中少了這段代碼測試
<activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
其中.MainActivity就是你的項目的主Activity,因此凡是遇到"No Launcher activity found!"錯誤,那麼絕對是AndroidManifest.xml文件中沒有配置啓動的主Activityspa
解決辦法:在建立項目時把【Blank Activity】換成【Empty Activity】就能夠解決上述所說的問題!3d
刪除HelloAndroid項目,從新建立,前面的建立步驟都同樣,就是到【Create Activity】時選擇【Empty Activity】,以下圖所示:
不少視頻教程在【Create Activity】這一步時選擇的都是【Blank Activity】,可是通過我實踐證實,【Create Activity】時這一步時若是選擇的是【Blank Activity】,那麼建立出來的Android項目就會出現"新建android工程的時候eclipse沒有自動生成MainActivity和layout佈局」的問題,也就是沒有生成MainActivity.java和activity_main.xml文件,缺乏了MainActivity的Android項目是沒法運行的,運行時就會出現上述所說的"No Launcher activity found!"錯誤。因此到了這一步千萬要注意,【Create Activity】這一步時選擇的是【Empty Activity】,而不是【Blank Activity】。這或許和我自身使用的Eclipse版本有關係,我使用的採用的是官方集成了ADT的Eclipse(adt-bundle-windows-x86_64-20140702),而有些版本的Eclipse在【Create Activity】這一步時選擇【Blank Activity】是能夠正常生成MainActivity和layout佈局的,反正建立項目到【Create Activity】這一步時,若是自身使用的Eclipse版本在【Create Activity】這一步時選擇【Blank Activity】能夠正常生成MainActivity和layout佈局的話,那麼【Create Activity】就能夠選擇【Blank Activity】做爲建立模板,若是不行,那麼【Create Activity】就選擇【Create Activity】做爲建立模板,反正咱們的目的就是但願Eclipse自動幫咱們生成MainActivity和layout佈局,哪種模板能夠作到就選擇哪種。
點擊【Finish】按鈕完成建立,這樣建立的android項目就會自動生成MainActivity.java和activity_main.xml文件,以下圖所示:
咱們看看AndroidManifest.xml中的代碼:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="me.gacl.helloandroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" 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>
在<application></application>中多了這段代碼
<activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
咱們直接運行建立的Android項目,以下圖所示:
運行Android應用時,是須要在模擬器上面運行的,到這一步時首先是要建立一個模擬器的,不過在Eclipse中建立模擬器時啓動要花很長時間,恰好我手頭上有一臺臺電的平板電腦,能夠用於測試,所以就直接使用真機測試了,以下圖所示:
在平板電腦中的運行結果以下:
平板電腦的桌面上也顯示出了咱們安裝部署上面的HelloAndriod應用的圖標,以下圖所示: