一、新建android工程的时候eclipse没有生成MainActivity和layout布局

  最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是"新建android工程的时候eclipse没有自动生成MainActivity和layout布局”,项目的创建过程如下图所示:

  

  

  

  

  

  

  展开HelloAndroid项目,可以看到创建好的项目的目录结构,如下图所示:

  

  我的项目是采用的是官方集成了ADT的Eclipse(adt-bundle-windows-x86_64-20140702)创建的,创建项目时选择的是【Blank Activity】,结果生成的项目的目录结构就成了如上图所示的样子,正常情况下,Eclipse会在src目录下创建一个名字为me.gacl.helloandroid的包,然后里面会有一个MainActivity.java的文件,然后layout文件夹中会有一个activity_main.xml文件,但是现在这两个都没有生成。由于HelloAndroid项目中没有可运行的Activity,那么直接运行HelloAndroid项目是无法运行的,如下图所示:

  在Eclipse中运行Android项目,操作步骤如下图所示:

  

  运行会在Console打印出 "No Launcher activity found!",并且模拟器也不运行,如下图所示:

  

  下面说一下"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文件中没有配置启动的主Activity

二、新建android工程的时候eclipse没有生成MainActivity和layout布局的解决办法

  解决办法:在创建项目时把【Blank Activity】换成【Empty Activity】就可以解决上述所说的问题!

  删除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应用的图标,如下图所示:

  

Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局的更多相关文章

  1. 新建android工程的时候eclipse没有生成MainActivity和layout布局

    一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...

  2. Android开发中无处不在的设计模式——动态代理模式

    继续更新设计模式系列.写这个模式的主要原因是近期看到了动态代理的代码. 先来回想一下前5个模式: - Android开发中无处不在的设计模式--单例模式 - Android开发中无处不在的设计模式-- ...

  3. Android开发中实现桌面小部件

    详细信息请参考原文:Android开发中实现桌面小部件 在Android开发中,有时候我们的App设计的功能比较多的时候,需要根据需要更简洁的为用户提供清晰已用的某些功能的时候,用桌面小部件就是一个很 ...

  4. Android开发中使用代码删除数据库

    更多信息参考:Android开发中使用代码删除数据库 在Android开发中,如果用到数据库,就会有一个很麻烦的问题,就是有时候需要删除数据库很麻烦,要打开Android Device Monitor ...

  5. 设计模式笔记之二:Android开发中的MVP架构(转)

    写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn ...

  6. 在Android开发中,定时器一般有以下3种实现方法

    在Android开发中,定时器一般有以下3种实现方法: 原文地址http://www.360doc.com/content/12/0619/13/87000_219180978.shtml 一.采用H ...

  7. Builder模式详解及其在Android开发中的应用

    一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比 ...

  8. 在Android开发中,定时执行任务的3种实现方法

    在Android开发中,定时执行任务的3种实现方法: 一.采用Handler与线程的sleep(long)方法(不建议使用,Java的实现方式)二.采用Handler的postDelayed(Runn ...

  9. Android开发中Eclispe相关问题及相应解决(持续更新)

    1.Eclipse项目中的Android Private Libraries没有自动生成. 一般而言,在Android开发中,项目中引用到的jar包会放到项目目录中的libs中,引入库会放到Andro ...

随机推荐

  1. 配置spring所需要的jar包

    spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...

  2. SpringMVC(2):Spring MVC入门

    原文出处: 张开涛 2.1.Spring Web MVC是什么 spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思 ...

  3. SeaJS入门教程系列之使用SeaJS(二)

    SeaJS入门教程系列之使用SeaJS(二) 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-03我要评论 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJ ...

  4. python+selenium九:ddt数据驱动

    第一种,测试数据放在Excel里面 test_Login: import unittestimport timeimport ddtimport osfrom selenium import webd ...

  5. js事件驱动函数

    输入框 获得光标的这个行为叫做获取焦点 失去光标的这个行为叫做失去焦点 blur 失去焦点 1.获取标签的时候,一定要先等页面加载完成,再去获取这个标签. 可以将整个script代码写在body的下面 ...

  6. 配置CenOS网络,并用Xshell链接。

    首先输入 cd /etc/sysconf ig/network-scripts/ 然后回车 输入ls 然后回车 输入 vi ifcfg-eth0  然后回车 按下esc键,然先后按下U,I键把光标用键 ...

  7. RabbitMQ(四): rabbitmq 的消息确认机制(事务+confirm)

    在 rabbitmq 中我们可以通过持久化数据解决 rabbitmq 服务器异常的数据丢失问题. 问题:生产者将消息发送出去之后,消息到底有没有到达 rabbitmq 服务器.默认情况下是不知道的. ...

  8. 《剑指offer》-统计整数二进制表示中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 直观思路就是把二进制表示从右往左统计1的个数.直接想到移位操作来迭代处理.坑点在于负数的移位操作会填充1.有人贴出了逻辑移位 ...

  9. mysql批量插入数据优化

    一.问题 很早以前做了一个更新功能,就是将A表中的数据全部查找出来,相对B表中改变的数据更新B表,B表中没有的数据插入B表. 最近发现该功能执行速率减慢,有时还跑超时.原来是A表中数据渐渐变多,就有了 ...

  10. poj 1789 每个字符串不同的字母数代表两个结点间的权值 (MST)

    题目大意是就是给出n个长度为7的字符串,每个字符串代表一个车,定义车的距离是两个字符串间不同字母的个数,题目要求的数不同的车的距离的最小值,即所求的就是最小生成树 Sample Input 4aaaa ...