如何使用andriod app 开发studio 开发 app

androidStudio开发安卓应用设置版本号
&>>&&>>&androidStudio开发安卓应用设置版本号
今天是日,农历丙申年六月十二,星期五欢迎加“”为主页,windows8风格,0.3s极速加载王柏元的博客专用搜索引擎:极客人,就用“”!
文章评分 1 次,平均分 5.0 :
Android:versionCode和:versionName
在eclipse中,修改我们开发的应用的版本号只需要在清单文件AndroidManifest.xml中manifest 标签节点中加入android:versionCode和android:versionName的值即可设置应用的版本号。如以下代码:
&manifest xmlns:android="/apk/res/android"
package="cn.wangbaiyuan.translate"
android:versionCode="2"
android:versionName="1.1" &
&manifest xmlns:android="/apk/res/android"package="cn.wangbaiyuan.translate"android:versionCode="2"android:versionName="1.1" &
上述代码表示应用的包名为cn.wangbaiyuan.translate,版本号code:2,版本名Name:1.1;前者一般是给开发者比较版本是否有升级用的,后者是展示给用户看的。
在Eclipse中使用修改AndroidManifest.xml修改版本号是完全没有问题的,但是极客人在上试过仅仅修改AndroidManifest.xml内容是没有效果的,虽然我把android:versionName赋值为1.1,但是在手机上显示的版本号始终是之前的1.0.。
androidStudio开发安卓应用设置版本号
后来才发现是中build.gradle(Module:app)配置文件同样设置了它的版本号,在和AndroidManifest.xml填写的版本号冲突的情况下,编译后的APK使用了build.gradle(Module:app)里面的配置:
build.gradle(Module:app)
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "cn.wangbaiyuan.translate"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
12345678910
compileSdkVersion 22buildToolsVersion "21.1.2"&defaultConfig {&&&&applicationId "cn.wangbaiyuan.translate"&&&&minSdkVersion 15&&&&targetSdkVersion 22&&&&versionCode 1&&&&versionName "1.0"}
在项目文件夹下找到build.gradle(Module:app)文件,删除defaultConfig里面VersionCode 和VersionName这两行;或者直接在这里修改版本号。
除特别注明外,本站所有文章均为原创,为了尊重作者的劳动成果,转载请注明出处,如果你觉得这篇文章对你有用,可以点击文章下面的“赞助作者”打赏作者!
记录生活,镌刻心路;泼洒文墨,分享技术!王柏元的博客致力于IT经验交流,并原创翻译引进外文文章,打开IT国际化视野
2016年七月
11121314151617
18192021222324
25262728293031
订阅博客周刊
给博主留言
关于本站 记录生活,镌刻心路;泼洒文墨,分享技术!王柏元的博客是王柏元的个人IT博客,致力于IT经验交流,并原创翻译引进英文博客文章,打开IT国际化视野。
博客通过认证:
您也可以使用第三方帐号快捷登录
扫一扫二维码分享Android项目中如何用好构建神器Gradle?
发表于 10:36|
作者贾吉鑫
摘要:本文作者贾吉鑫为大众点评Android工程师,在进行团队并行开发时,分库遇到的问题很多都要通过Gradle脚本解决。Gradle虽为构建神器,但学习曲线比较陡峭,要想在Android项目中用好Gradle必须要做到三点。
Android Gradle实战
下面讲讲在Android Gradle实战中遇到的一些问题和经验,感觉还是蛮多干货的。
productFlavors
这个东西基本上已经烂大街了,gradle的项目一般都会使用Product Flavor,看完美团的文章,你应该就懂了。
buildTypes
很多App有内测版和正式版,怎么让他们同时安装在一个手机上?同时安装在一个手机上,要求packageName不同的,用productFlavors可以解决,但可能不够优雅,alpha版本还要来个debug和release版本岂不是很蛋疼?可以用buildTypes来解决,淘宝资深架构师朱鸿的有比较详细的讲解,但有些内容可能有些过时了,需要更改脚本。
项目依赖的远程包如果有更新,会有提醒或者自动更新吗? 不会的,需要你手动设置changing标记为true,这样gradle会每24小时检查更新,通过更改resolutionStrategy可以修改检查周期。
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
dependencies {
compile group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
之前上传aar同一版本到maven仓库,但依赖却没有更新,该怎么办呢?可以直接删除本地缓存,缓存在~/.gradle/caches目录下,删除缓存后,下次运行就会自动重新下载远程依赖了。
上传aar到Maven仓库
在工程的build.gradle中添加如下脚本:
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = GROUP_ID
pom.artifactId = ARTIFACT_ID
pom.version = VERSION
repository(url: RELEASE_REPOSITORY_URL) {
authentication(userName: USERNAME, password: PASSWORD)
在build.gradle同目录下添加gradle.properties文件,配置如下:
GROUP_ID=dianping.android.nova.thirdparty
ARTIFACT_ID=zxing
VERSION=1.0
RELEASE_REPOSITORY_URL=/nova
USERNAME=hello
PASSWORD=hello
gradle.properties的属性会被build.gradle读取用来上传aar,最后执行./gradlew :Zxing:uploadArchives即可。
更多配置,可参考。
项目构建过程中那么多任务,有些test相关的任务可能根本不需要,可以直接关掉,在build.gradle中加入如下脚本:
tasks.whenTaskAdded { task -&
if (task.name.contains('AndroidTest')) {
task.enabled = false
tasks会获取当前project中所有的task,enabled属性控制任务开关,whenTaskAdded后面的闭包会在gradle配置阶段完成。
任务可以取消了,但还不尽兴啊,想加入任务怎么搞?前面讲了dependsOn的方法,那就拿过来用啊,但是原有任务的依赖关系你又不是很清楚,甚至任务名称都不知道,怎么搞?
比如我想在执行dex打包之前,加入一个hello任务,可以这么写:
afterEvaluate {
android.applicationVariants.each { variant -&
def dx = tasks.findByName("dex${variant.name.capitalize()}")
def hello = "hello${variant.name.capitalize()}"
task(hello) && {
println "hello"
tasks.findByName(hello).dependsOn dx.taskDependencies.getDependencies(dx)
dx.dependsOn tasks.findByName(hello)
afterEvaluate是什么鸟?你可以理解为在配置阶段要结束,项目评估完会走到这一步。
variant呢?variant = productFlavors+ buildTypes,所以dex打包的任务可能就是dexCommonDebug。
你怎么知道dex任务的具体名称?Android Studio中的Gradle Console在执行gradle任务的时候会有输出,可以仔细观察一下。
hello任务定义的这么复杂干啥?我直接就叫hello不行吗?不行,each就是遍历variants,如果每个都叫hello,多个variant都一样,岂不是傻傻分不清楚,加上variant的name做后缀,才有任务的区分。
关键来了,dx.taskDependencies.getDependencies(dx)会获取dx任务的所有依赖,让hello任务依赖dx任务的所有依赖,再让dx任务依赖hello任务,这样就可以加入某个任务到构建流程了,是不是感觉非常灵活。
我突然想到,用doFirst的方式加入一个action到dx任务中,应该也可以达到上面效果。
gradle加速
gradle加速可以看看这位朋友写的,我就不多嘴了。并行编译,常驻内存,还有离线模式这些思路对gradle的加速感觉还是比较有限。
想要更快,可以尝试下Facebook出品的,可以看一下Vine团队适配Buck的,我们的架构师也有适配Buck,加速效果在10倍左右,但有两个缺点,不支持Windows系统,不支持远程依赖。
你想知道每个执行任务的运行时间吗?你想知道每个执行任务都是干嘛的吗?把下面这段脚本加入build.gradle中即可:
class TimingsListener implements TaskExecutionListener, BuildListener {
private Clock clock
private timings = []
void beforeExecute(Task task) {
clock = new org.gradle.util.Clock()
void afterExecute(Task task, TaskState taskState) {
def ms = clock.timeInMs
timings.add([ms, task.path])
task.project.logger.warn "${task.path} took ${ms}ms"
void buildFinished(BuildResult result) {
println "Task timings:"
for (timing in timings) {
if (timing[0] &= 50) {
printf "%7sms
%s\n", timing
void buildStarted(Gradle gradle) {}
void projectsEvaluated(Gradle gradle) {}
void projectsLoaded(Gradle gradle) {}
void settingsEvaluated(Settings settings) {}
gradle.addListener new TimingsListener()
上面是对每个任务计时的一个例子,想要了解每个任务的作用,你可以修改上面的脚本,打印出每个任务的inputs和outputs。比如assembleDebug那么多依赖任务,每个都是干什么的,一会compile,一会generate,有什么区别?看到每个task的输入输出,就可以大体看出它的作用。如果对assemble的每个任务监听,你会发现改一行代码build的时间主要花费在了dex上,buck牛逼的地方就是对这个地方进行了优化,大大减少了增量编译运行的时间。
buildscript方法
Android项目中,根工程默认的build.gradle应该是这样的:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
allprojects {
repositories {
一会一个jcenter()这是在干什么?buildscript方法的作用是配置脚本的依赖,而我们平常用的compile是配置project的依赖。repositories的意思就是需要包的时候到哥这里来找,然后你以为com.android.tools.build:gradle:1.2.3会从jcenter那里下载了是吧,图样图森破,不信加入下面这段脚本看看输出:
buildscript {
repositories {
repositories.each {
println it.getUrl()
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
结果是这样的:file:/Applications/Android%20Studio.app/Contents/gradle/m2repository/ /
我靠,仓库竟然直接在Android Studio应用内部,所以说你去掉buildscript的jcenter()完全没有关系啊,下面还有更爽的,我们知道有依赖传递,上面classpath
中的gradle依赖gradle-core,gradle-core依赖lint,lint依赖lint-checks,lint-checks最后依赖到了asm,并且这个根目录中的依赖配置会传到所有工程的配置文件,所以如果你要引用asm相关的类,不用设置classpath,直接import就可以了。你怎么知道前面的依赖关系的?看上面m2repository目录中对应的pom文件就可以了。
为什么讲到ASM呢?又是个比较刁的东西,可以直接用来操纵Java字节码,达到动态更改class文件的效果。可以用ASM,达到解耦效果。中提到的class依赖分析和R常量替换的脚本都可以用ASM来搞。
脚本写多了,都挤在一个build.gradle里也不好,人长大了总要自己出去住,那可以把部分脚本抽出去吗?当然可以,新建一个other.gradle把脚本抽离,然后在build.gradle中添加apply from 'other.gradle'即可,抽出去以后你会发现本来可以直接import的asm包找不到了,怎么回事?根工程中配置的buildscript会传递到所有工程,但只会传到build.gradle脚本中,其他脚本可不管,所以你要在other.gradle中重新配置buildscript,并且other.gradle中的repositories不再包含m2repository目录,自己配置jcenter()又会导致依赖重新下载到~/.gradle/caches目录。如果不想额外下载,也可以在other.gradle中这么搞:
buildscript {
repositories {
url rootProject.buildscript.repositories[0].getUrl()
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
获取AndroidManifest文件
提到,gradle中的applicationid用来区分应用,manifest中packageName用来指定R文件包名,并且各个productFlavor
的manifest中的packageName应该一致。applicationid只是gradle脚本中的定义,其实最后生成的apk中的manifest文件的packageName还是会被applicationid替换掉。
那获取R文件的包名怎么搞?要获取AndroidManifest中package属性,并且这个manifest要是起始的文件,因为最终文件中的package属性会被applicationid冲掉,由于各个manifest中的package属性一样,并且非主manifest可以没有package属性,所以只有获取主manifest的package属性才是最准确的。
def manifestFile = android.sourceSets.main.manifest.srcFile
def packageName = new XmlParser().parse(manifestFile).attribute('package')
无用的资源就不要打包进APK了。
之前在创业公司,用
做持续继承,遇到一个让我很纠结的问题。在Travis上执行构建脚本如下:
./gradlew clean
./gradlew assembleXR
最后生成的APK在运行的时候报错,提示找不到某个.so文件,解压发现APK中果然缺少某个库工程的.so文件,但在本地运行的时候却是没有问题,纠结了好久,后来研究发现Android
Studio中执行Clean Project的时候,会执行generateSources的任务,把它加入构建脚本后才打包正确。最近发现,这原来是个,并且已经在android gradle1.3被修复了。
匆匆忙忙间,写了很多东西。读完此文,希望你能感受到构建神器的魅力,感受到它的灵活强大,当然也希望能让你使用Gradle更加得心应手。作者简介:贾吉鑫(),大众点评Android工程师,开发经验丰富,乌云白帽子,关注网络安全,个人博客:。
将于10月15-16日在北京新云南皇冠假日酒店召开。大会特设五大技术专场:平台与技术iOS、平台与技术Android、产品与设计、游戏开发、企业移动化。此外,大会更是首次举办国内极具权威影响力的IoT技术峰会,特设硬件开发技术与虚拟现实两大专场。大会将聚集国内最具实力的产品技术团队,与开发者一道进行最前沿的探讨与交流。
第一时间掌握最新移动开发相关信息和技术,请关注mobilehub公众微信号(ID: mobilehub)。&
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章Android++:为Android App开发而生的Visual Studio的原生扩展 - 文章 - 伯乐在线
& Android++:为Android App开发而生的Visual Studio的原生扩展
日,随着Android++扩展的出现,Windows平台的开发者所期待的一件事情:通过Visual Studio开发Android App,可以如愿以偿了。
NaturalMotion的Android主程 Justin Webb 创建了Android++, 从此打通了Android,这个最大、发展最快的移动平台与微软专属的IDE的通道,同时允许原生代码级别的调试。
“世界上有非常多的开发者把Visual Studio作为主要的IDE” Webb在Android++的网站上写道。“而Android++的目标就是提供一种途径,辅助这些开发可以借助现有的技能和工作实践,进入到Android平台”
Android++ 是一个免费的扩展,包括MSBuild脚本,以此支持在Visual Studio 开发Android应用。其初衷是为了基于C/C++上的NDK,但也包括其他特性,诸如:可配置的部署和资源管理和集成Java代码编译器等。。
关于作者:
可能感兴趣的话题
那岂不是可以抛弃eclipse了
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2016 伯乐在线输入关键字进行搜索
创建项目首先,先指出Android Studio中的两个概念。 Project 和 Module 。在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目。
在 Eclipse 中,我们可以同时对多个 Eclipse 的 Project 进行同时编辑,这些 Project 在同一个 workspace 之中。在Android Studio中,我们可以同时对多个Android Studio的 Module 进行同时编辑,这些 Module 在同一个 Project 之中。
Eclipse 的 Project 等同于Android Studio的 Module 。
Eclipse 的 workspace 等同于Android Studio的 Project 。
本文中所说到的项目指的是Android Studio的 Module 。Android Studio创建一个项目,首先要先创建 Project 。但是你创建项目的同时, Project 自动创建了,因此很多人容易混淆这两种概念。
讲解1Android Studio创建项目的过程,其实就是 Eclipse 创建项目过程的细分化。 Eclipse 许多在一个页面设置的内容,Android Studio拆分成了多个页面,因此,创建项目的过程其实并不复杂。
Android Studio有两种创建项目的方法。
第一个是在Android Studio起始页选择 Start a new Android Studio project 。
第二个是在Android Studio主页,选择 File --> New Project 。
讲解2接下来,我们会看到这个页面。
Application name :应用程序的名称。它是app在设备上显示的应用程序名称,也是在Android Studio Project 的名称。Company Domain :公司域名。影响下面的 Package name 。默认为电脑主机名称,当然你也可以单独设置 Package name 。Package name :应用程序包名。每一个app都有一个独立的包名,如果两个app的包名相同,Android会认为他们是同一个app。因此,需要尽量保证,不同的app拥有不同的包名。Project localtion : Project 存放的本地目录。
以上内容设置完毕,点击 Next 。
讲解3接下来,我们会看到这个页面。
在这里,你可以你的 Project 中 Module 的类型以及支持的最低版本。
Phone and Tablet :表示 Module 是一个手机和平板项目。TV :表示 Module 是一个Android TV项目。Wear :表示 Module 是一个可穿戴设备(例如手表)项目。Glass :表示 Module 是一个 Google Glass 项目(不知道 Google Glass 是什么请自行搜索)。
你可以同时选择多个类型,区别就是项目会根据你选择的类型创建一个或多个 Module 。
Minimum SDK 表示的是 Module 支持的Android最低版本。根据不同的用户可以选择不同的版本。你可以点击 Help me choose 来查看当前Android版本分布情况。现在这个时代,如果你的项目支持到 2.2 版本几乎是支持了所有的Android设备。
以上内容设置完毕,点击 Next 。
讲解4接下来,我们会看到这个页面(由于我的 Module 类型只选择了 Phone and Tablet ,所以会有这个页面。)。
这个页面是让我们选择是否创建 Activity以及创建 Activity 的类型。你可以选择不创建 Activity ( Add No Activity )。
如果你选择自动创建 Activity,Android Studio会自动帮你生成一些代码。根据 Activity 类型的不同,生成的代码也是不同的。有时,你能从这些自动生成的代码中,学到很多东西,比如 Fullscreen Activity 。选择完毕,点击 Next 。
讲解5接下来,我们会看到这个页面(上一步中,我选择了 Blank Activity 。)。
Activity Name :自动创建的 Activity 的类名。Layout Name :自动创建的 Activity 的布局文件名称。Title :自动创建的 Activity 的名称。Menu Resource Name :自动创建的 Activity 的 Menu 文件名称。
以上内容设置完毕,点击 Next 。你将会看到这个进度条。这个表示,Android Studio正在创建和编译你的项目。
讲解6项目创建编译完毕,会进入Android Studio的主页,你将看到下面的界面。
左侧是你的项目文件区域,中部是代码区域,右侧是布局文件的预览区域。
细心的话,你会发现,左侧的项目文件区域显示的文件层级,和 Eclipse 是不相同的,甚至和本地目录的文件层级也是不相同的。
和 Eclipse 不相同是因为Android Studio使用了 Gradle 这个项目构建工具,而 Eclipse 使用 Ant 构建项目,你可以通过 Gradle 设置和 Eclipse 拥有相同的目录结构。
和本地目录的文件层级不同是因为,在Android Studio 0.8版本之后,官方推荐使用 Android 文件目录显示结构,你可以切换。在项目文件区域的左上角,你可以选择你想选择的文件结构显示类型。
虽然官方建议是使用 Android ,但是我个人还是比较喜欢使用 Project 。你可以根据你的个人习惯进行选择。下面是 Android 和Project 这两种显示类型的显示区别。
从这两张图可以看出: Android 区分明显,只显示了和项目有关的文件; Project 根据本地目录结构,显示了文件结构,比较繁杂却更显示出了真实目录结构。
另外,对于项目文件区域,我还有两个设置。在项目文件区域的右上角,有一个齿轮的设置按钮,点击可以更加细节的设置文件显示效果。
默认是没有勾选 Flatten Packages 和 Autoscroll to Source 的,是我自己勾选上的。 Flatten Packages 是设置将包以完整包名的形式显示(个人习惯)。 Autoscroll to Source 是你点击某一个文件,将自动打开,省去了双击操作。
讲解7如果你已经有一个项目,你想在这个项目中创建一个 Module ,你可以选择 File --> New Module 。
这样,会在当前的目录下创建一个 Module ,而不是在一个新的窗口中,单独创建 Project 和 Module 。
之后,你就会看到下面的界面。
同样的道理,你可以设置项目类型,但是,由于你现在是创建一个 Module ,所以只能选择一种类型。
下方的4个选项代表着不同的意义:
Android Library :创建一个 Android Library 的 Module 。Import Existing Project :导入其他项目为一个 Module ,导入的项目可以是 Eclipse ADT 项目,也可以是 Gradle 项目( Gradle 只是项目构建工具, Eclipse 中也是可以使用的)。Import .JAR or .AAR Package :导入 JAR 或者 AAR 文件为一个 Module 。Java Library :创建一个 Java 的 Module ,主要用于编写 Java 的工具包。
选择完毕,点击 Next 。其余步骤,和上面几乎一样,就不在赘述了。
学习啦,第一次使用Android
挺详细的,从这里起步了
写的挺好的
很详细,谢谢~
你好,我在公司使用
在Android Studio正在创建和编译你的项目。 这块
卡着不懂了
哪一步不动了?
你在这篇文章搜下面这一句
Android Studio正在创建和编译你的项目
这一个还真的没有遇到过。。。会不是因为你的机器配置较差,所以这一步花费了很长时间。
另外,你可以注意一下,这一步是不是有显示正在下载gradle,如果是在下面gradle,你可以设置gradle目录到as自带的gradle的目录,这样就不会下载了。
我创建了多个module始终只会运行第一个,不是说一个module一个项目吗?
Thank You For Your Help!
首先只有application才能运行,其次,运行前需要先选择你要运行的module
我就卡在最后一步了,一直显示正在创建
多谢,刚装上studio
你好,感谢你的精彩讲解。不过在项目开发的过程中,我遇到了一个问题,问题描述如下:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyFirstApp:compileDebug'.
& C see the compiler error output for details.
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
2.Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.
这是在我添加了外部jar包(百度地图API)后出现的错误,当然在进行基础的Android开发时是正常运行的。请问这是怎么回事?我要怎么解决?希望百忙之中给予指导,谢谢。
这网站做的太好了。顶!
多谢作者分享
实在是太详细了
新建的project 就是 eclipse 中的
project 含义啊
你建好一个Android studio project之后 里面就有 一个工程,难道还能在这个project 在建立工程?
感谢楼主的精彩奉献,刚开始学安卓开发,在这请教几个问题,第一个是像书举例说要新建一个项目,是不是说如果再AS上就是,新建一个module。第二个是新建一个module的时候,完成后,好像找不到R文件,就是在JAVA代码里,所有的R都是红色显示的,都提示错误是怎么回事,希望楼主帮忙解答,感谢!!
感谢楼主的无私奉献,我爱你。
我有个问题,新建完project后,在改Project上新建Module时,为什么还需要填上新的项目名。这不是很麻烦吗?有没有什么好的解决方法。希望楼主解惑
java.lang.AssertionError
at com.android.tools.idea.wizard.DynamicWizard.init(DynamicWizard.java:123)
at com.android.tools.idea.wizard.NewProjectWizardDynamic.init(NewProjectWizardDynamic.java:68)
at com.android.tools.idea.wizard.NewModuleWizardDynamic.init(NewModuleWizardDynamic.java:58)
at com.android.tools.idea.actions.AndroidNewModuleAction.createModule(AndroidNewModuleAction.java:48)
at com.android.tools.idea.actions.AndroidNewModuleAction.actionPerformed(AndroidNewModuleAction.java:42)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:164)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:266)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:926)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:124)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:236)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:105)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:512)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)
at ponent.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at ponent.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at ponent.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at ponent.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at ponent.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:697)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
建不了新项目,这些是什么问题,要装什么还是环境没设好?
java.lang.AssertionError
at com.android.tools.idea.wizard.DynamicWizard.init(DynamicWizard.java:123)
at com.android.tools.idea.wizard.NewProjectWizardDynamic.init(NewProjectWizardDynamic.java:68)
at com.android.tools.idea.actions.AndroidNewProjectAction.actionPerformed(AndroidNewProjectAction.java:38)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:164)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:266)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:926)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:124)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:236)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:105)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:512)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)
at ponent.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at ponent.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at ponent.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at ponent.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at ponent.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:697)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
设置好了可以创建后一进去又是这个错误提示,怎么办啊......Android Studio到底要弄多少东西...............
你好!monroe,看了你的AS创建项目的教程,实践时遇到了问题,请教一下!谢谢!D:\06.AndroidStudio'sApplication\Firstapp\app\src\main\res\layout\activity_firstapp.xml
Error:(16, 21) Resource id cannot be an empty string (at 'id' with value '@+id/').
Error:Execution failed for task ':app:processDebugResources'.
com.mon.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\05.Android Studio\ANDROID SDK\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1
这两个错误应该怎么解决呢?本人新手,不太懂,望回答一下,谢谢啊哈哈!
逐步学习中
楼主这一系类文章写的非常好,非常具体,致谢。
很好。。。。
初学者,学习,受益匪浅
你好,请问如何解决warning
junson@Pan:~/android-studio/bin$ ./studio.sh
Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=250m; support was removed in 8.0
您好,我刚开始接触android开发,用了几天eclipse,后来发现AS,现在才开始用,想问个问题:我直接新建一module,然后运行,结果提示“Empty test suite&,请问这个该怎么解决。非常感谢。
太感谢了,谢谢,3Q3Q(专门注册一个账号来感谢你的),马上准备学习你的另一些文章! --谢谢
感谢!!!
你好,我用Android studio 1.3.1新建项目,但每次都是生成R文件失败,
Clean Project好多次是都还是出错
我的文件路径都是英文并且不包含空格,请问应该怎样解决呢?
Thanks very much,I love you!!!
&首先,先指出Android Studio中的两个概念。 Project 和 Module 。在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目。
在 Eclipse 中,我们可以同时对多个 Eclipse 的 Project 进行同时编辑,这些 Project 在同一个 workspace 之中。在Android Studio中,我们可以同时对多个Android Studio的 Module 进行同时编辑,这些 Module 在同一个 Project 之中。
Eclipse 的 Project 等同于Android Studio的 Module 。
Eclipse 的 workspace 等同于Android Studio的 Project 。
本文中所说到的项目指的是Android Studio的 Module 。Android Studio创建一个项目,首先要先创建 Project 。但是你创建项目的同时, Project 自动创建了,因此很多人容易混淆这两种概念。&
这段话就是在误人子弟!
刚开始用Android Studio开发,看的是您整理的视频和文档,很有帮助,感谢楼主的无私奉献!赞赞!
开始用Android Studio练习开发。以前都是直接VIM或者source insight,偶尔eclipse。文档很详细,谢谢楼主!!
要回复文章请先或}

我要回帖

更多关于 androidstudio开发app 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信