由于是刚使用AndroidSdudio不久,对于它的使用方法还是比较陌生,也会出现各种各样的问题,对于使用惯Eclipse的开发者,初次使用来说都会是一件比较头疼的事。
于是我就各种百度搜索,下面写出几点掌握的内容分享一下。
在使用Android Studio(以下简称AS)新建项目时都会有这样一个概念:
Eclipse中的WorkSpace相当于AS中的Project;
Eclipse中的Project相当于AS中的Module(只就新建而言)。
所以Eclipse中在一个WorkSpace中建立多个Project 等同于 在AS的Project中建立多个Module。
1. New Project
"File-> New Project"
会弹出新建项目的向导窗口。Module Name是Project中的第一个Module的名字。
Minimum required SDK用来选择应用支持的最低的Android版本,底部的Support Mode会随着所能够支持的最小SDK的选择而变化,如下图所示,选择Android 3.0,底部的Fragment等选项自动消失:
因为在Android3.0及之后,其SDK已经开始支持Fragment。如果是Android 3.0之前的版本需要使用到Fragment的话,勾选了底部Support Mode的Fragment就会为低版本的sdk提供相应的支持Fragment的库文件。
一路“Next”之后,设置默认的Activity及其生成的布局文件,点击“Finish”完成项目的创建。
2. New Module
新建的Module命名为“HelloChina”,一路“Next”,在窗口中选择“Blank Activity”空白的Activity,上述操作完后进入Module的启动Activity的设置:
可以看到Layout Name中默认显示activity_main2,因为第一个Module中已经生成了activity_main.xml(觉得这里不是很方便,每个Module新建时默认的Activity可以同名但是其对应的布局文件命名不能同名,对于不同的项目而言这种限制不是很爽)。Navigation Type可以选择导航类型,右边的视图会相应显示布局效果。点击“Finish”完成Module的创建。
3. Run Module
点击“Edit Configurations”去看看哪里出问题:
错误指出是找不到默认的Activity(我们在Activity模块里看到勾选的是启动默认Activity)
但是在项目中已经生成了默认的Activity了即MainActivity,为什么还会找不到呢?
起初遇到该问题时以为是除了第一次随新建Project时创建的Module之外,之后再创建的Module都要手动在配置里设置默认启动的Activity,于是乎我就手动设置了默认Activity,如下图所示,指定了“HelloChina”项目的默认启动Activity——MainActivity:
设置之后原先在“HelloChina”的红叉不见了,也可以点击运行按钮了,但是运行之后项目并没有启动成功。
百度知道后,打开了HelloChina项目的AndroidManifest.xml文件,发现:
MainActivity即默认启动的Activity竟然没有生成IntentFilter,含有如下设置的IntentFilter的Activity会被应用程序指定为程序的入口,即最先启动的Activity。
在<activity></activity>里加上这段代码后,项目的红叉消失了,原先在"Run/Debug Configuration"配置窗口里的Activity配置部分,仍然勾选 “Launch default activity”选项。
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>