Android Studio3,从不一样的角度描述Android事件传递

4、gradle打包,自定义apk名称代码报错(Cannot set the value of read-only property ‘outputFile’ )

Error:(56, 0) Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

Open File

解决方案:修改文件名代码请这样写

android.applicationVariants.all { variant ->

variant.outputs.all {                    outputFileName = “xinlebao_ d e f a u l t C o n f i g . v e r s i o n N a m e _ {defaultConfig.versionName}\_ defaultConfig.versionName_{releaseTime()}.apk”                }            }

5、AAPT2 编译报错 AAPT2 error

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

解决方案:在gradle.properties中关闭APPT2 编译

android.enableAapt2=false

注:如果是eclipse转到as上的项目,可能没有gradle.properties文件,请在项目根目录中手动创建
6、apt插件问题(Error:Cannot choose between the following configurations of project :mylibrary:)

Error:Cannot choose between the following configurations of project :mylibrary:

- debugApiElements- debugRuntimeElements- releaseApiElements- releaseRuntimeElements  All of them match the consumer attributes:

解决方案:如下

//1.在project的build.gradle中删除

classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’//2.在module的build.gradle中删除apply plugin: ‘android-apt’//3.将module的build.gradle文件中的dependencyapt  ‘com.jakewharton:butterknife-compiler:8.1.0’//改为annotationProcessor  'com.jakewharton:butterknife-compiler:8.1.0’

好了,以上就是最近更新3.0所遇到的一些问题,如果你还遇到其他的问题,欢迎私信我。

**Android S

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

浏览器打开:qq.cn.hn/FTe 免费领取

tudio 3.0**

1、.gradle文件

哇塞,问题解决之后就想着赶紧创建一个新的项目来看看有啥变化,首先一个变化比较大的是.gradle文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPOhqNqW-1636293214044)(https://user-gold-cdn.xitu.io/2017/10/30/30197ddfbb192c14e35ae6fe9beec73b?imageView2/0/w/1280/h/960/ignore-error/1)]

我们可以看到,谷歌爸爸把buildToolsVersion构建工具的版本给“干掉了”,在以前的版本中,buildToolsVersion也会给项目的构建带来很多错,现在谷歌爸爸把它给“干掉了”;还有就是下面的依赖换成了implementation,那么它和compile有什么区别呢?别着急,喝杯茶听我细细道来:

(1)、compile和api

api完全等同于compile,二者没有区别。我们大家都知道,随着Android版本的更新,有很多过时的类和方法,compile亦是如此,我们可以把compile理解成api的过去式。

(2)、api和implementation

这两个是AS3.0版本中新增的指令,下面用一张图来说明一啊两者的区别:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RqObnEDc-1636293214066)(https://user-gold-cdn.xitu.io/2017/10/30/488564ba2c1b5a8f8293933041a04c02?imageView2/0/w/1280/h/960/ignore-error/1)]

有想详细了解的同学,请参考官方的:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations

2、支持Kotlin

还在初学Kotlin语言的同学有福了,AS3.0支持将Java代码直接转成Kotlin代码,下面我们通过一段VCR来认识一下这个功能:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z4itbI82-1636293214067)(https://user-gold-cdn.xitu.io/2017/10/30/64fc6f67b12e178dc368fd301bb6f6d3?imageView2/0/w/1280/h/960/ignore-error/1)]

在java文件中,选中你要转换的代码,然后在顶部选择**Code——>Convert Java File to Kotlin File**进行转换就好了,转换之后,这就是一个Kotlin文件了。

3、logcat栏

在AS上几个版本中,在Logcat还是Android Monitor的时候,里面有很多东西,网络啊,内存啊,CPU啊什么的,AS3.0中,谷歌将其分开了,Logcat就单独放出来了,之前那个看网络,内存,CPU的单独拎出来了,一个叫Android Profiler的东西:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3jhvmmOU-1636293214068)(https://user-gold-cdn.xitu.io/2017/10/30/dfce901ea615fc783df5f91a325dde2c?imageView2/0/w/1280/h/960/ignore-error/1)]

是不是很帅,据说这玩意儿还自带抓包功能哦(这是LZ最喜欢的一个功能)。只不过默认是关闭的,我们要手动把它开起来。进入**Run——>Edit Configurations**,然后把下面这个钩上就好了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjlpnNsz-1636293214070)(https://user-gold-cdn.xitu.io/2017/10/30/41be76f62abf4f2b859771a1b23ebc15?imageView2/0/w/1280/h/960/ignore-error/1)]

需要注意的是,你项目中的API版本得是API26以下,而且你的手机版本得是Android5.0以上才能使用抓包功能。开启之后,我们来抓个包试试吧:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTnzRtIq-1636293214071)(https://user-gold-cdn.xitu.io/2017/10/30/0b5a5a1d12cfd25d85758f3a1129a9ae?imageView2/0/w/1280/h/960/ignore-error/1)]

在手机上发起一次网络请求,NETWORK那一栏会发生明显的变化,我们选择那个区域进行抓包,可以看到请求了一个接口MainServlet(如果该区域下会请求多个接口,则会一一列出来),然后我们点击MainServlet,就会出现后台传过来的Json,Header之类的信息,怎么样,是不是很屌,以后再也不用再麻烦测试帮你抓包了,也不用再装什么其他软件了。CPUMEMORY也一样,都具有记录当前页面的数据,你也可以根据它所记录的数据进行相应的分析。这两个就不展示了,有兴趣的同学可以更新之后自己玩玩。最后需要注意的是开启这个之后会降低应用程序的构建速度,因此只有在你要开始对应用程序进行概要分析时,再启用它。

4、文件管理器

AS3.0中,文件管理器工具允许和你的AS连接的手机无缝交互,你可以在AS3.0上查看,复制并删除设备上的文件。当检查由应用程序创建的文件或是要讲文件传输到设备时,非常有用:

data/data/app_name/包含存储在内部存储上的应用程序的数据文件sdcard/包含存储在外部用户存储上的用户文件 (图片等)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8AuE63Bp-1636293214072)(https://user-gold-cdn.xitu.io/2017/10/30/ea0646200de9e4aaf2963b1bad984d32?imageView2/0/w/1280/h/960/ignore-error/1)]

5、支持Java8

同样,喜欢写lambda的同学也有福利了,这次AS的改版支持了Java8,可以直接将Java代码格式成lambda格式的,但是你得给你的项目设置成支持Java8,右键你的module,选择open Module Settings,进去之后按照如下设置就可以了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pCcRFyI4-1636293214072)(https://user-gold-cdn.xitu.io/2017/10/30/27a63f2393ae63a73d018616c0133379?imageView2/0/w/1280/h/960/ignore-error/1)]

这样你就能使用lambda表达式了,系统会自动提醒你哪里可以转换成lambda表达式,是不是好智能:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFwpYpmk-1636293214073)(https://user-gold-cdn.xitu.io/2017/10/30/977ed0df6de425b9a9b6748adf0a8a8e?imageView2/0/w/1280/h/960/ignore-error/1)]

参考

http://blog.csdn.net/soslinken/article/details/73114637
中…(img-yFwpYpmk-1636293214073)]

参考

http://blog.csdn.net/soslinken/article/details/73114637

上一篇:分析你的第一个Android程序


下一篇:Qt5.12.4 配置Andriod环境