文档章节

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

冬天帽帽
 冬天帽帽
发布于 05/14 11:40
字数 1341
阅读 7
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、新建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应用的图标,如下图所示:

  

© 著作权归作者所有

冬天帽帽
粉丝 2
博文 79
码字总数 110196
作品 0
杭州
私信 提问
Android 插件化 01 —— 小实验

目的:用最简单的方法调用起指定apk(未安装过)中的Activity 困难: apk没有安装,就无法使用startActivity调起apk中指定的Activity,不管是显式调用还是隐式调用,都不行。 解决思路: 既然...

飛飛萨
2017/06/03
0
0
[Android记录]自定义ADT模板

简介 ADT模板就是在Eclipse中使用向导新建Android工程或者Android组件的时候使用的模板。ADT模板的特点: 1.可以通过简单的可视化配置[后面称之为UI parameters]来生成Android代码和资源样本...

xesam
2013/07/11
15.4K
7
android之搭建JNI开发环境及简单案例

项目名:HelloFromC 一、在开始jni编程之前对我们使用的环境进行如下配置:(在windows环境下) 1、下载android-ndk-r7b,解压放在C:\android-ndk-r7b目录下。(方便输入命令,也可以自定目录...

长平狐
2012/09/03
286
0
Android选项卡实现之TabHost/TabSpec/TabWidget

Tab是什么就不用再用我来描述了。android的ui开发中,承载Tab的容器就是TabHost,每一个Tab对应一个Activity,每个Activity均会有自己的布局。 1.继承TabActivity 2.布局文件中使用tabHost,t...

古沐风
2013/11/27
6.2K
2
[Android]Android开发入门之HelloWorld

引言: 在做Unity开发的时候,发现这么个问题,虽然Unity是跨平台的,能够进行Android,IOS,Web,PC等开发,但如果要实现一些稍微系统 层的东西,还是需要通过通信,调用原系统的接口(自定义...

丁小未
2014/04/08
358
0

没有更多内容

加载失败,请刷新页面

加载更多

图的拓扑排序(动图)

概述 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,...

大洼X
19分钟前
3
0
CentOS7安装Redis和搭建Redis高可用集群

一、CentOS7下Redis安装 1.查看linux内核版本 此步骤可以省略,一般CentOS7内核版本都应该满足,因为搭建Redis高可用集群是Redis3以上才支持的,而Redis3需要linux内核高于3.10版本,所有才有...

liddblog
21分钟前
3
0
活动泄漏了最初添加的窗口

这是什么错误,为什么会发生? 05-17 18:24:57.069: ERROR/WindowManager(18850): Activity com.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c4......

技术盛宴
21分钟前
3
0
IT兄弟连 HTML5教程 DIV+CSS的兼容性问题

使用DIV+CSS布局网页其实是很容易的事情,但各种浏览器之间的不兼容性问题,加大了页面布局的难度,给程序员带来很多不便,于是需要花费更多的时间在调试各种浏览器的兼容性上。因为部分CSS...

老码农的一亩三分地
24分钟前
3
0
商家发货

商家发货 商家发货 打开后台-订单-订单列表 1.点击筛选出待发货的订单可进行批量操作。批量发货、批量打印快递单、批量打印发货单。 2.点击发货时,弹出框显示待发货的商品,发货方式可选需要...

Geek-Chic
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部