AndroidStudio的一些坑

AndroidStudio的一些坑

以下环境为Android Studio 1.3.2,Gradle 2.7(as自带2.4,另下载的2.7)

编译时提示Multiple dex files define: Lcom/sina/weibo/sdk/BuildConfig异常

新浪微博提供的SDK里所带的weibosdkcore.jar里包含了BuildConfig类,而api工程也会生成同名(包名也相同)类,所以有此编译异常。解决方法是用工具(如7zip)直接删除weibosdkcore.jar里的BuildConfig.class文件。还有其他解决方法,这个链接不错。

无法clean project

有时clean后仍然有文件残留(例如classes.jar),此时需要手工删除项目路径下的build目录(删除时可能会提示classes.jar被占用,多半是as自己在使用,可关闭as再重试)。比较恶心的是,clean时并不会提示你有文件无法删除。

两个project共享一个module

假设自己写了一个android library(名称library1),然后想在Project1和Project2里都使用它,但不把library1复制两份。窍门是在project2的setting.gradle文件里像下面这样引用project1里的资源:

include ':../project1/library1'

参考链接

Configuration with name 'default' not found.

检查settings.gradle文件里,include的module是否存在,通常是include了不存在的module造成的。参考链接

Proguard提示Duplicate Entry错误

多个module依赖多个相同的jar文件时会有这个问题,我当时遇到的是xutils,解决办法是在jcenter上找到了对应的repository,改为不直接使用jar而是使用repository解决。Proguard Troubleshooting

用proguardFile还是proguardFiles?

在build.gradle里指定项目proguard配置文件时,用proguardFiles可以同时指定多个,用proguardFile可指定一个(可多行),经测试效果是一样的。注意:在module settings对话框里可能会显示不出来正确的文件名。还有一个变化:比较新的as版本缺省文件名是proguard-rules.pro,以前是proguard-rules.txt。

被依赖module里BuildConfig.DEBUG的值总为false

例如module A依赖module B和module C,在Eclipse里运行时B和C里BuildConfig.DEBUG的值会是true(导出签名apk后会自动变成false);然而在Android Studio里B和C里的BuildConfig.DEBUG值总是false,A里的正常。这样就导致if(BuildConfig.DEBUG){Log.d(...)}日志无法正常显示。参考链接 参考链接2

本文转自博客园八进制的博客,原文链接:AndroidStudio的一些坑,如需转载请自行联系原博主。

时间: 2024-10-24 16:42:56

AndroidStudio的一些坑的相关文章

android MultiDex multidex原理原理下遇见的N个深坑(二)

android MultiDex 原理下遇见的N个深坑(二) 这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑. 不了解的可以先看上篇文章:android MultiDex multidex原理(一) 解决和遇到的其它问题,请见下一篇文章:android MultiDex 原理下超出方法数的限制问题(三) 遭遇multidex  愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下~~~~ 经过漫长的等待AndroidStudio构建失败了.于是

Android Studio升级到3.0后遇到的坑

这几天谷歌推出了as3.0的正式版,相信大家都进行更新了,然后对3.0的新特性也有过一些了解,最后磨刀霍霍开始宰杀,然鹅却一不小心就开始了排坑之路. 第一坑.必须升级gradle到4.0以上 相信这个大坑,一般使用as的人都会解决了,所以就不多说 第二坑.buildToolsVersion升级到26.0.0 其实这个不算坑,一般buildToolsVersion都会升级到最新的版本,直接更新就是了 第三坑.Error:Resource shrinker cannot be used for li

我在写串口通信程序遇到的坑

我在做基于HC6800的51单片机上,写串口通信程序遇到了许多坑. 一个大坑:为什么HC6800上U转串口不能发送数据. 因为我们向HC6800烧程序都是使用图1所示的软件,所以我想当然地认为可以直接通过HC6800上的U转串进行串口通信,而我的同学信誓旦旦地告诉我可以.坑爹.并且这个软件好像也在提示可以用直接用U转串,进行串口通信(见图2).但是当我打开串口调试助手的时候(如图3),却发现单片机掉电了(如图4).其实HC6800上有另一个串口的,我们只要把连接图5黄框处串口.并且在图4中的6处

Pelican上增加评论和自动删除文章的一些坑

增加评论功能 这个网上有很多描述,主要是去disqus注册下,然后设置下配置文件example坑主要在于Pelican的默认主题是没有disqus的模板的,所以虽然看到了对disqus的请求,却看不到评论区.需要自己下个比较全的主题. 自动删除文件 在content里删除了md文件,重新make html后在output中依然会看到那个md文件生成的html文件. 一个方法是加入配置DELETE_OUTPUT_DIRECTORY = True来每次清空output,但是这带来了两个问题: 自动日

上云有隐性成本? 用户要警惕五个坑

上云与否,早已不是企业的选择题,计算.网络.存储资源的虚拟化为业务流程带来了灵活可扩展的便利性.IT资源"拿来就用.想用就有"的理念让企业有了更多选择,也使得基础设施的部署成本有效削减.不过在企业迁移上云的过程中,想获得真正的实惠却并不简单,除了要转变传统的业务理念,还要做出合理部署,否则就会遇到一些坑. 上云有隐性成本 用户要警惕五个坑(图片来自Luke Lonergansf) 对于任何一家企业来说,每年的巨额IT支出难以避免,而且买来的资源能否充分利用也要画一个问号,更不要说背后的

使用NamedParameterJdbcTemplate遇到无法使用的坑

最近一直在捣鼓HBase的项目,之前写了一些代码从数据库加载数据到HBase,所有的代码都跑得好好地,然而今天尝试着换了一个数据库,就跑不通了.通过数据工具,可以发现连接没有问题,而且有部分逻辑很顺利通过了,然而有一些就是卡主了,通过jstack打印出来的信息可以找到这样的堆栈: "runner{object-loader#292}-objecthandler" #323 prio=5 os_prio=0 tid=0x00002aaadc5ec800 nid=0x7f62 in Obj

这些年遇到的js的坑

总结一些这些年遇到的JavaScript的坑,当然也是自己学艺不精.现总结如下 (1)声明js函数(js方法)时报错  原因是:缺少function关键字. 正确的应该是: Js代码   com.whuang.hsj.getCustomAttr=function(htmlNode22,attr)   {       var hospitalId=htmlNode22[attr];       if(hospitalId==undefined||hospitalId==null){        

十五天精通WCF——终结篇 那些你需要注意的坑

终于一路走来,到了本系列的最后一篇了,这一篇也没什么好说的,整体知识框架已经在前面的系列文章中讲完了,wcf的配置众多,如果 不加一些指定配置,你可能会遇到一些灾难性的后果,快来一睹为快吧. 一: 第一个大坑 [数据传输量] 我们使用wcf的目的,就是用来进行分布式的数据交互,既然是交互,就一定要进行数据交换,可能一些新人并没有注意到wcf在数据传输量上 面做了一个大小限制,比如我现在要传输一个2m的txt给service,会出现什么情况??? static void Main(string[]

[喵咪Linux(2)]环境变量的坑

[喵咪Linux(2)]环境变量的坑 前言 玩过linux的童鞋对环境变量都不陌生,我们在安装好一些软件,组件之后想要直接使用它都需要加入环境变量,并且比如java啊golang都必须依赖你设置的环境变量来运行,在最近笔者在日常工作中遇到了一些关于环境变量的坎,所以今天把这些"坑"分享出来和大家交流! 附上: 喵了个咪的博客:w-blog.cn 1. 两场景 笔者有个习惯就是喜欢追问场景,比如别人问我一个问题,token要怎么用sign要怎么玩,我都会先问你是什么场景,什么场景才使用什