小言_互联网的博客

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

398人阅读  评论(0)

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

一、新建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里面的代码,如下所示:


  
  1. <manifest xmlns:android= "http://schemas.android.com/apk/res/android"
  2. package= "me.gacl.helloandroid"
  3. android:versionCode= "1"
  4. android:versionName= "1.0" >
  5. <uses-sdk
  6. android:minSdkVersion= "8"
  7. android:targetSdkVersion= "21" />
  8. <application
  9. android:allowBackup= "true"
  10. android:icon= "@drawable/ic_launcher"
  11. android:label= "@string/app_name"
  12. android:theme= "@style/AppTheme" >
  13. </application>
  14. </manifest>

  可以看到,里面没有配置启动项,原因是因为Eclipse在创建项目时没有帮我们自动生成MainActivity.java和activity_main.xml文件,这应该是Eclipse在创建【Blank Activity】的bug,在<application></application>中少了这段代码


  
  1. <activity android:name= ".MainActivity" android:label= "@string/app_name">
  2. <intent-filter>
  3. <action android:name= "android.intent.action.MAIN" />
  4. <category android:name= "android.intent.category.LAUNCHER" />
  5. </intent-filter>
  6. </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中的代码:


  
  1. <?xml version= "1.0" encoding= "utf-8"?>
  2. <manifest xmlns:android= "http://schemas.android.com/apk/res/android"
  3. package= "me.gacl.helloandroid"
  4. android:versionCode= "1"
  5. android:versionName= "1.0" >
  6. <uses-sdk
  7. android:minSdkVersion= "8"
  8. android:targetSdkVersion= "21" />
  9. <application
  10. android:allowBackup= "true"
  11. android:icon= "@drawable/ic_launcher"
  12. android:label= "@string/app_name"
  13. android:theme= "@style/AppTheme" >
  14. <activity
  15. android:name= ".MainActivity"
  16. android:label= "@string/app_name" >
  17. <intent-filter>
  18. <action android:name= "android.intent.action.MAIN" />
  19. <category android:name= "android.intent.category.LAUNCHER" />
  20. </intent-filter>
  21. </activity>
  22. </application>
  23. </manifest>

  在<application></application>中多了这段代码


  
  1. <activity
  2. android:name= ".MainActivity"
  3. android:label= "@string/app_name" >
  4. <intent-filter>
  5. <action android:name= "android.intent.action.MAIN" />
  6. <category android:name= "android.intent.category.LAUNCHER" />
  7. </intent-filter>
  8. </activity>

  我们直接运行创建的Android项目,如下图所示:
  

  运行Android应用时,是需要在模拟器上面运行的,到这一步时首先是要创建一个模拟器的,不过在Eclipse中创建模拟器时启动要花很长时间,刚好我手头上有一台台电的平板电脑,可以用于测试,因此就直接使用真机测试了,如下图所示:

  

  在平板电脑中的运行结果如下:

  

  平板电脑的桌面上也显示出了我们安装部署上面的HelloAndriod应用的图标,如下图所示:

  


转载:https://blog.csdn.net/a754315344/article/details/106589216
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场