Android Studio 2.2中启用Java8的Lambda表达式
来源:互联网 发布:淘宝用品 编辑:程序博客网 时间:2024/05/17 06:31
Android Studio 2.2版本对Java8提供了更稳定的支持,可以直接用官方的Lambda表达式。启用的同时还需使用新的 Jack 工具链。新的 Android 工具链将 Java 源语言编译成 Android 可读取的 Dalvik 可执行文件字节码,且有其自己的 .jack 库格式,在一个工具中提供了大多数工具链功能:重新打包、压缩、模糊化以及 Dalvik 可执行文件分包。
以下是构建 Android Dalvik 可执行文件可用的两种工具链的对比:
旧版 javac 工具链:
javac (.java --> .class) --> dx (.class --> .dex)
新版 Jack 工具链:
Jack (.java --> .jack --> .dex)
配置方法
在模块层级的 build.gradle 文件中输入以下内容:
android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}
之后会遇到问题:代码中控制的中文全部乱码
一开始测试的时候是弹出Toast后乱码,于是改成Log,还是乱码。以为是Android Studio的编码设置有问题,点设置一看全是UTF-8
。
一番查阅之后发现,是Jack编译器里的一个bug,Jack使用的是虚拟机的默认编码,在Windows上是windows-1252
,而代码中用了UTF-8
,然后Jack编译时用windows-1252
,这就是乱码的原因。
解决方案:在project中的gradle.propertie文件中添加-Dfile.encoding=UTF-8
(图上是我的设置,各位只需自行添加后面那段即可)
之后Rebuild Project,再Run App,即可得到正常的中文
参见:
http://www.tuicool.com/articles/2yuiiyA
http://blog.csdn.net/ljh102/article/details/52916019
http://stackoverflow.com/questions/39514276/android-displays-text-in-wrong-encoding-after-update-to-java-8
- Android Studio 2.2中启用Java8的Lambda表达式
- 如何在Android studio中使用java8 的Lambda表达式
- 开启Java8来启用Lambda表达式在Android Studio的一些配置
- Android Studio配置Dagger2+java8+lambda表达式
- android studio 配置Java8支持Lambda表达式
- Android Stutio中使用java8的Lambda表达式
- java8中lambda表达式
- java8 中Lambda表达式
- Android Studio对Java8 Lambda的支持
- java8中Lambda表达式的使用
- java8的lambda表达式
- 如何在Android Studio使用Java8 Lambda表达式
- JAVA8中Lambda表达式入门
- Java8中Lambda表达式学习
- Java8新增的Lambda表达式
- Java8引入的lambda表达式
- 一、java8的Lambda表达式
- Java8新增的Lambda表达式
- Android中shape属性详解
- iOS动画篇:核心动画
- LevelDB源码分析1-基础
- spring 通过反射调用service方法
- Asp.Net编码规范
- Android Studio 2.2中启用Java8的Lambda表达式
- java解析json中的所有属性并返回
- Android群英传——第五章实现滑动的7种方式(六七)ViewDragHelper自定义侧滑菜单
- 使用JSON报错问题
- 使用sinatra实现简单的crud功能
- 设置Putty字体颜色全屏
- cuda 文件项目 改cpp项目文件
- 在github上下载单个文件夹
- memcached基本概念