Articles of java 8

无法在android studio中解决符号’java.time.LocalDate’错误

我试图在我的Android应用程序中使用java.time.LocalDate,但是如果我尝试导入它,那么java.time中的任何类都会在Android Studio 1.1中无法解析符号错误 我能解决这个问题的唯一原因是它不支持java 8.这是真的吗?

使用java 8在Android Studio 2.1中获取错误

目前我使用的是最新的android studio 2.1 java 8 这是我的build.gradle文件 android { compileSdkVersion 22 buildToolsVersion “24rc3” defaultConfig { applicationId “com.name” minSdkVersion 10 targetSdkVersion 19 jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ……. } 我得到以下编译时错误,我不知道 错误:com.android.jack.frontend.FrontendCompilationException:无法在com.android.jack.Jack.run(Jack.java:472)的com.android.jack.Jack.buildSession(Jack.java:892)编译com.android.jack.api.v01.impl.Api01ConfigImpl $ Api01CompilationTaskImpl.run(Api01ConfigImpl.java:102)… 8更多警告:处理任务java.io.IOException时出现exception:com.android.jack.api.v01 .CompilationException:编译失败:oTT:compileDebugJavaWithJack FAILED错误:任务执行失败’:oTT:compileDebugJavaWithJack’。 java.io.IOException:com.android.jack.api.v01.CompilationException:编译失败信息:BUILD FAILED 请您询问是否需要一些细节。

android studio error:默认接口方法仅支持从Android N开始(–min-api 24)

我升级到Android工作室3.1,我得到以下错误: Default interface methods are only supported starting with Android N (–min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner) Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (–min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)} 这是我的gradle配置: compileSdkVersion 27 //buildToolsVersion ‘27.0.3’ defaultConfig { minSdkVersion 16 targetSdkVersion 27 multiDexEnabled true //… } 正如你所看到的那样,我的目标27已经领先于其抱怨的24? 我该怎么做才能解决这个问题? 如果我改为1.8 java不会让我失去很多顾客? 为什么我在升级android […]

在android studio中使用Java 8

即时通讯使用Android工作室,我想使用lambdaexpression式,只能从Java 8,当我尝试使用它,我得到: Lambda expression are not supported at this language level. 那么,我该如何改变AndroidStudio?

带有Java 8模块的Gradle Android项目

正如我在这篇文章中看到的 , Java 8现在还没有被Android正式支持。 所以我很感兴趣,如果有可能与Java 7和Java模块(作为依赖项)build立Android模块。 作为一个例子,我试图创build一个Gradle项目,它将包含一个Android模块和一个Java模块作为依赖项。 通过为这两个模块设置下面的compileOptions ,一切正常。 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } 但是,如果我尝试改变我的Java模块的compileOptions compileJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 } 我得到以下错误: Error:Execution failed for task ':fc-android:preDexFreeDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1 所以问题是,实际上可能有用1.7版编译的Android模块以及用1.8编译的依赖Java模块吗? 如果不是,那为什么? 更新: Retrolamba for Gradle (由@Saeed提到)很好,但是他们只支持lambdas,所以不能访问Stream API , DateTime […]

匕首2,Gradle插件和杰克 – 指导要求

我正在用Android Studio(AS 2.1.2 – SDK 24)使用Dagger 2(DI库的首次用户),显然我的第一个想法是“我需要什么依赖来使用它? 看过例子,我可以看到你需要在顶层的build.gradle文件中,你需要一个注释处理器插件: classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 现在Module级别的build.gradle的依赖关系应用了Module的apt插件,所以我最终得到了如下的结果: apply plugin: 'com.neenbedankt.android-apt' // other generic settings – android / buildTypes etc. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) . . compile 'com.google.dagger:dagger:2.6' apt 'com.google.dagger:dagger-compiler:2.6' provided 'javax.annotation:jsr250-api:1.0' } 问题 我一直在使用我的项目中的杰克工具链和Java 8,并发现上述configuration与杰克不兼容。 为了让杰克和匕首2合作,我研究了我需要的东西,我改变了以下内容: gradle-wrapper.properties: 变成 : distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip build.gradle (顶层) 变成: classpath 'com.google.guava:guava:19.0' // added after […]

Android编译时间与插口是非常缓慢的

我最近升级到Java 8,我的电脑随后使用插孔来编译我的Android版本。 自从我切换后,在我的设备上构build应用程序需要花费大量的时间。 通常在3-5分钟之间。 我更改了我的.jack文件中的服务器超时值为1800秒,它似乎仍然是服务器超时设置为60秒。 有没有人有类似的问题? 这是我的.jack文件的样子: SERVER_TIMEOUT=1800 编辑:我最近升级我的电脑从2010年年中的Mac台式电脑到2015年年底的模式。 虽然杰克还没有尽快编译,但是它已经有了很大的改进。 以前每次编译需要5分钟左右的时间,现在编译只需要一点点时间。 所以对于那些面临类似问题的人来说,这可能会给你一些额外的洞察力来解决你的问题。

Maven:在应用程序中使用Java 8库,使用retrolambda-maven-plugin和DEX-ed使用android-maven-plugin

我写了一小部分小型图书馆供我内部使用。 这是使用Maven构build的。 这些库的目标是“常规”Java,GWT和Android。 其中一些是用Java 8编写的,因为我没有任何意图在GWT或Android上运行它们,因此其他库是用旧的Java 6编写的,以支持这两种。 我有一个计划,将我的库完全迁移到Java 8(根据语言特性),并且我还成功地在尚未发布的GWT 2.8.0上运行Java 8重新编写的库。 但是,我无法将Java 8重写的库编译为Android应用程序。 问题是Retrolambda(retrolambda retrolambda-maven-plugin插件)似乎只能处理当前的Maven模块类,并完全忽略依赖类。 因此, android-maven-plugin打破目标应用程序的构build: [INFO] UNEXPECTED TOP-LEVEL EXCEPTION: [INFO] com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) [INFO] at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) [INFO] at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) [INFO] at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) [INFO] at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) [INFO] at com.android.dx.command.dexer.Main.processClass(Main.java:665) [INFO] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) [INFO] at com.android.dx.command.dexer.Main.access$600(Main.java:78) [INFO] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) [INFO] […]

Android 8中是否提供Java 8 New Date API?

Android N会支持Java 8date/时间API吗? 正如这Android博客说: http : //android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html 改进的Java 8语言支持 – 我们很高兴将Java 8语言function带入Android。 使用Android的Jack编译器,现在可以在Android版本上使用许多stream行的Java 8语言function,包括lambdas等。 新function有助于减less样板代码。 例如,lambdas可以在提供事件监听器时replace匿名内部类。 某些Java 8语言function(如默认和静态方法,stream和function接口)现在也可在N及更高版本上使用。 与Jack一起,我们期待更紧密地跟踪Java语言,同时保持向后兼容性。 它说: 使用Android的Jack编译器,现在可以使用许多stream行的Java 8语言function,包括lambda等等 是的,支持lambdaexpression式。 那么Java 8的新date/时间API呢? 有任何想法吗? 谢谢!

Android Studio重构将恢复所有的lambda和其他Java 8function

我有一个Android库项目 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } 它使用了很多lambda , 尝试资源等。 我怎么能把sourceCompatibility&targetCompatibility 降级到Java 1.6呢? 在Android Studio IDE中是否有这样的function?