android studio 打包怎么导入包

android studio module添加最新的com.android.support:appcompat-v7:21.0.0依赖报错解决方法
本文为大家讲解的是android studio module添加最新的com.android.support:appcompat-v7:21.0.0依赖报错解决方法 ,感兴趣的同学参考下。
本文为大家讲解的是android studio module添加最新的com.android.support:appcompat-v7:21.0.0依赖报错解决方法 ,感兴趣的同学参考下。
错误描述:
我的开发平台是Mac,测试机是MX3(API 19 android 4.4.4),我不确定其他平台是否出现该问题,所以提前说明一下,免得误人子弟。
今天再使用自定义ActionBar的时候,出现了一个很奇葩的错误,就是我为自己的module添加了最新的com.android.support:appcompat-v7:21.0.0依赖后,在Activity中使用
final ActionBar actionBar = getActionBar();
actionBar.show();
来获取ActionBar时,抛出了NullPointerException异常,这让我百思不得其解。这在之前使用一直没用问题啊。。。。。于是,各种百度google,但是并未发现类似问题(我用了最新的support包)。最后,人品爆发,在StackOverFlow上找到了类似的问题,后来我意识到可能是
com.android.support:appcompat-v7:21.0.0版本太高,导致在android 5.0以下的sdk导致不兼容问题。估计,google的脑袋是被枪打了把,话说support包本就是用来做兼容的吧,在这个版本竟然成了导致不兼容的原因。。。。。
错误原因分析如下:
在module的build.gradle文件里,如果用默认的自动依赖处理方式,如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Library')
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.0'
编译时系统就会去依赖最新版的support:appcompat-v7:21.0.0 。按照之前的经验来说是不因该有问题的,但是据我的理解,目前appcompat-v7:21.0.0须使用android 5.0版本的build tool,而且build出来的程序只能在Android 5.0下运行,真屌啊。。。。我们4.4.4的用户混不下去了么???
解决方法也很简单:
就是把appcompat-v7:21.0.0改为appcompat-v7:19.+
如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Library')
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:19.+'
Copyright &
All Rights Reserved4172人阅读
& & 同样的,非gradle编译的工程和gradle编译的在import module上同样有一些区别。包括操作上,显示上的一些区别,以前的文章中,只要没有标注“非gradle”字样的,都是针对使用gradle来build的。
& & 说到这,估计很多人会问,怎样的算是使用gradle来进行build的,怎样的不算,区别很简单,你只要看到工程根目录下,或者module目录下有没有build.gradle这个文件,有就是使用gradle来build,没有就是非gradle。(当然不只这一个区别,还有一些其他的文件的区别,显示的区别等,这边不用关心了)。
& & 好了,直接上图解释怎么import module吧,下图是我的一个工程,一会会有展开的图,看展开的图你会发现,目录结构和eclipse是基本一样的。
& & 针对这幅图,说下和用gradle build的工程一个显示的区别:注意到一个细节了吧,工程的右下角的图标是一个蓝色的小方块,并不是像使用gradle build的工程一样,右下角的图标是一个蓝色的小杯子。(其实吧,这边的工程本身就是被作为一个module)
通过File-&Project structure打开配置界面,选择modules,点+,再选择Import Module:
按步骤往下next即可,这边只解释其中一个步骤,看下图:
Create module from existing sources:什么时候选这项呢,如果你原来的sources并不是一个module,就要选这项,这样Android Studio会给你生成对应的module匹配的文件。
Import module from external model:如果你原来的sources就是一个module,那你就选这项,比如你原来的sources被另外一个工程当module使用过了,你就可以选这项。
那估计会有人问,我不知道怎么区分到底是不是module,如果你没办法区分的话,那你默认都选第一项就好了。这里的Maven不用去关心。
一路next后,这个时候,你可以看到,sources就被当做module的形式导进来了,这个时候,工程就有两个module了。
我们再看下,project列表中有什么变化,如图,看到了吧,原来的一个变成两个了,而且导入的module和原来的module是并排的,和eclipse中显示两个project一样的方式显示,这个就是非gradle build和用gradle build中module显示的最大的区别,这个时候你也可以再观察下图标,有没有发现,你后面导入进来的module的右下角图标并不是显示成像使用gradle
build一样,是个小手机图标,而是还是蓝色小方块,而且在展开的列表中,你没有看到gradle.build这个文件:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:261277次
积分:3446
积分:3446
排名:第3892名
原创:68篇
评论:149条
文章:40篇
阅读:161295o&nbsp,&nbsp&nbsp,&nbsp&nbsp,&nbsp
本文介绍内容包括:Android Studio、导入 jar 包方法、添加使用远程开源库方法、添加使用本地开源库方法。
几天前的晚上突然又想使用 Android Studio,结果竟然把之前无法攻克的问题全都解决了,包括之前很困扰的第三方开源库的引入问题,现在也都很轻松了,所以 Eclipse 的工作几乎都可以转移过去。并且试用了一晚上,比 eclipse 强大多了!看来,eclipse For Java & Android 的地位毫无疑问终将被 IntelliJ IDEA 所取代,而 Android Studio 也正是基于 IntelliJ IDEA 开发的,并且我的驱动力主要是,开源社区都越来越偏向 Android Studio 了,不管是第三方库还是一些开源项目,都在朝着这个方向,因此做安卓的话,肯定要尽早使用 AS。
可能感兴趣的话题Android Studio导入Project的方法 -
- ITeye技术网站
博客分类:
Android Studio到现在已经发展到0.8+的版本了,最近也在试着使用它,原因是多方面的,一个毕竟是未来的趋势,二则是github上越来越多的大牛开源项目都是基于Android Studio的,因此会使用Android Studio就成为一件必须的任务。
关于Android Studio的下载和安装,网上一搜一大堆的文章,本文不准备累赘地谈论这些问题,主要说一下如何在Android Studio中导入已有的项目进去。
在具体下面的工作之前,有两个概念是与Eclipse不大相同的,即Project和Module。在Android Studio中,一个Project并不是Eclipse的project,倒是有点像workspace(或者说任务吧),而Module才是与Eclipse的project相似的。所以,一个Project中可以包含多个Module,多个Module在一起共同构成一个Project,每个Module可以是一个库,也可以是一个可运行的Module(对应可运行的apk)。
好了,现在进入正题。
1、启动Android Studio,本文使用的是0.8.0版的。
2、准备需要在Android Studio中打开的项目。这里以 /AndroidAlliance/EdgeEffectOverride/ 为例,请将对应的zip文件下载下来并解压缩,这是一个滚动控件如ScrollView滚动到超出边界时会出现高光现象的项目。之所以以这个项目为例,是因为在导入这个项目时,出现了几个问题需要解决。
3、修改项目中所需的Gradle软件包需求。
找到 EdgeEffectOverride-master\gradle\wrapper下面的gradle-wrapper.properties文件,使用Notepad++之类的文本文件工具打开它,里面的这一行(红色部分):
#Wed Oct 02 23:50:13 BST 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-all.zip
请将红色部分改为你的机器上已安装的Gradle版本,比如我这里是gradle-1.12-all.zip,如图所示(在C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.12-all\2apkk7d25miauqf1pdjp1bm0uo,你的机器可能与这略有不同,因为最后一个文件夹名是随机生成的):
如果不做这步修改的话,不同的项目要求的Gradle版本不同,Android Studio不得不下载多份Gradle软件包放到C:盘上,其实没有必要,因为每个Project会提出它所需的Gradle最低版本要求,可以打开Project中的build.gradle文件看到(红色部分):
buildscript {
repositories {
mavenCentral()
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
这里的例子是要求0.6以上版本的Gradle,因为我们的机器可能已经存在比这个版本更高的Gradle,因此不需要像上面要求的那样去下一份gradle-1.8-all.zip的文件,直接用机器中已有的即可。顺便说一下,可以通过http://services.gradle.org/distributions/xxx.zip(请将蓝色部分xxx.zip改为所需的文件名,比如gradle-1.12-all.zip,其它版本也是一样),这样手工下载下来,然后放到C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.12-all\2apkk7d25miauqf1pdjp1bm0uo里面,不需要解压缩,Android Studio会自己解压缩的。
4、点击Import Project。
定位到项目所在的目录,找到其中的build.gradle文件,然后点击OK按钮。
5、遇到的问题
首先会提示一个错误,大意是使用了不支持的Gradle版本,请使用Gradle1.10,如下:
此时点击下面的“Gradle settings”蓝色链接,出现下面的窗口:
选中“Use default gradle wrapper(recommended)”推荐的选项,点击OK按钮即可。回到前一个界面时,再点击Fix Gradle wrapper and re-import project蓝色链接,这样就开始修正并自动构建Project了。
在gradle构建project过程中,底部出现下图所示的提示信息,见红色感叹号的两行:
其中第一个是说DefaultGroovMavenDeployer缺少了nexusUsername属性,第二个是说必须使用更新版本的Android Gradle插件。
先纠正第一个问题,在Android Studio中打开EdgeEffectOverride模块中的build.gradle文件,删掉最后那行(见截图底部蓝色选中部分):
好了,删掉最后这行,Android Studio会自动保存。注意,如果是误修改的话,可以按Ctrl+Z后退,但若要重新前进的话,快捷键是Ctrl+Shift+Z,而不是平常惯用的Ctr+Y,Ctrl+Y在Android Strdio中是删除当前行的意思。
接下来处理第二个问题,打开EdgeEffectOverride-master项目下面的build.gradle文件,如下图所示:
蓝色选中部分就是要修改的内容,奇怪的是Android Studio已经自动帮我们改好了,已经是当前的Gradle插件版本了。
最后,点击顶部的“Try Again”链接,如图所示。
不过,又是出现新的问题:
意思是说项目使用的SDK Build Tools版本18.0.1太低了,最低要使用19.1.0,没办法,只好按照提示改了。
继续在Android Studio中分别打开EdgeEffectOverride和EdgeEffectOverrideSample这两个模块下面的build.gradle文件,将其中的buildToolsVersion后面的数字统统改成19.1.0,如下图中的红色标记部分,记得两个build.gradle文件都要改。
好了,点击编辑器顶部的“Try Again”,经过Gradle一番忙碌之后,一切终于好了,下载终于可以运行了。
6、点击绿色的三角箭头,EdgeEffectOverrideSample跑起,其中EdgeEffectOverride是EdgeEffectOverrideSample运行依赖的模块(相当于Eclipse中的library)。
浏览: 12629 次
来自: 杭州}

我要回帖

更多关于 android studio导入库 的文章

更多推荐

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

点击添加站长微信