Android開發中遇到的問題(二)——新建android工程的時候eclipse沒有生成MainActivity和layout佈局

1、新建android工程的時候eclipse沒有生成MainActivity和layout佈局

  最近因爲工做上的緣由,開始學習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

2、新建android工程的時候eclipse沒有生成MainActivity和layout佈局的解決辦法

  解決辦法:在建立項目時把【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應用的圖標,以下圖所示:

  

相關文章
相關標籤/搜索