升级到Android构建工具2.2.0-alpha1后。 我无法配置应用程序或构建。 我从gradle得到以下堆栈跟踪: e: java.lang.IllegalStateException: Built-in library initialization failed. Please ensure you have kotlin-runtime.jar in the classpath: java.lang.NoSuchMethodError: com.google.protobuf.GeneratedMessageLite.newSingularGeneratedExtension(Lcom/google/protobuf/MessageLite;Ljava/lang/Object;Lcom/google/protobuf/MessageLite;Lcom/google/protobuf/Internal$EnumLiteMap;ILcom/google/protobuf/WireFormat$FieldType;)Lcom/google/protobuf/GeneratedMessageLite$GeneratedExtension; at org.jetbrains.kotlin.builtins.BuiltInsInitializer.initialize(BuiltInsInitializer.kt:45) at org.jetbrains.kotlin.builtins.BuiltInsInitializer.get(BuiltInsInitializer.kt:62) at org.jetbrains.kotlin.platform.JvmBuiltIns$Companion.getInstance(JvmBuiltIns.kt:32) at org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform.getBuiltIns(JvmPlatform.kt:41) at org.jetbrains.kotlin.resolve.TargetPlatformKt.createModule(TargetPlatform.kt:112) at org.jetbrains.kotlin.resolve.TargetPlatformKt.createModule$default(TargetPlatform.kt:111) at org.jetbrains.kotlin.context.ContextKt.ContextForNewModule(context.kt:124) at org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM.createContextWithSealedModule(TopDownAnalyzerFacadeForJVM.java:163) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.analyze(KotlinToJVMBytecodeCompiler.kt:322) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:129) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:318) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:124) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:173) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:49) at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.java:220) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.compileNotIncremental(Tasks.kt:497) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler(Tasks.kt:370) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler(Tasks.kt:149) […]
我已经阅读了大量的材料,但我无法弄清楚发生了什么。 我正在用Eclipse Oxygen,GWT 2.8,MapDB3做一个简单的Web应用程序,当我尝试通过以Jetty方式运行 – > GWT开发模式来启动Web应用程序时,我获得了上述错误。 我疯了 访问/ asteonlineing /迎接问题。 原因:HTTP 500服务器错误 引起:java.lang.NoClassDefFoundError:kotlin / jvm / internal / Intrinsics at org.mapdb.DBMaker.fileDB(DBMaker.kt) at com.google.asteonlineing.server.AoLServiceImpl.<init>(AoLServiceImpl.java:26) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) […a lot more] 我试图将kotlin的jar添加到我的项目的lib目录中,但是错误稍微改变,并且一直是http错误500,但是关于: java.lang.NoClassDefFoundError:org / eclipse / collections / impl / list / mutable / primitive / LongArrayList 最后我发现MapDB 3.0.5有一长串的依赖关系。 我已经安装了所有这些,错误消失,但其他人来了,但代码相关。
有没有现成的服务从json模型生成kotlin数据类的方式http://www.jsonschema2pojo.org/ site? 我的新项目已经超过了复杂的API响应,所以它会节省我的时间。
我正在使用Android Studio 3.0.1,并且我注意到,对于我的一个项目(只有这个项目),它会生成.project文件和像Eclipse这样的bin目录(我想)。 该项目是在AS 3.0.1中创建的,并没有从Eclipse或其他任何东西中迁移过来。 它也不使用任何花哨的Gradle插件或依赖 – 只是生成的(AppCompat + Kotlin)。 你有什么想法为什么这样做? 另外,当我试图准备一个最小化的复制项目时,我注意到问题只是通过复制粘贴整个项目目录而消失,因此可能没有意义与您共享。 使用两个项目副本(让我们称他们为original和copy )我能够发现,当我关闭Android Studio并使用git clean -xfd清理两个副本 copy在打开时没有问题 – 没有类似Eclipse的文件 original打开时仍然有问题(文件生成) diff -r在打开它们之前(所以在git clean )只给出这个: 二进制文件../PWTA_Proj2/.git/index和./.git/index不同 他们两个都会让Android Studio在打开时显示如下错误: 检测到不支持的模块:以下模块不支持编译:PWTA_Proj2。 不幸的是,在一个项目中不能有非Gradle Java模块和Android-Gradle模块。 尽管有错误,我可以正常建立项目。 另外我没有任何非Gradle模块 – 该项目非常简单,由AS生成。 唯一不太常见的是该项目包含一些AIDL文件。 编辑#1:Gradle文件: 顶级build.gradle : // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { […]
我正在努力运行在androidTest文件夹下的测试 – 目前即使当我不启动模拟器没有它的测试运行,没有对话框强迫我选择我必须运行测试的设备。 它导致问题,当我运行测试错误出现在控制台中: 处理完成退出代码1类未find:“com.someapp.shoppinglistapp.ShoppingListDaoTest”空的测试套件。 只有当我手动编辑配置这个单独的方法选择“部署目标选项”,并选择“打开选择部署目标对话框”它运行良好,我选择模拟器和测试运行。 但这意味着我将不得不手动为我的androidTest包中的每个测试方法。 究竟发生了什么? 我甚至试过这个全新的项目,配置成Android Studio 3.0.1中的Kotlin项目。 你可以自己尝试。
我正在使用Gradle的Spring Boot。 升级到以下内容: classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.3.0.RC1”) 。 。 。 从1.2.7.RELEASE导致以下问题: * What went wrong: A problem occurred evaluating root project ‘vampr’. > Could not find property ‘run’ on org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated@12e13f2b. 如何解决这个问题? 构建文件: buildscript { ext.kotlin_version = ‘1.0.0-beta-1038’ repositories { maven { url “https://repo.spring.io/libs-milestone” } maven { url “https://repo.spring.io/libs-release” } mavenLocal() mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE”) } […]
不知道为什么Android Studio 3.1 Canary 3有bug并停止工作,我将gradle更新为3.1-alpha03 ,并停止工作,无论我再次下载该项目,是否再次下载了Android Studio。 我已经签出了旧版本的项目,但是这个消息仍然显示: Gradle sync failed: com.android.tools.idea.gradle.project.model.AndroidModuleModel.getSelectedVariant()Lcom/android/tools/idea/gradle/project/model/ide/android/IdeVariant; (8s 806ms) 我已经删除.idea文件夹, .gradle文件夹,无效并重新启动 我不知道还有什么可做的,不能运行或使用IDE。 编辑: EDIT2: 新项目也不起作用
在检查事件时,使用带有开关或代码的代码块是一件常见的事情。 当简单时它可以是干净的代码,但似乎仍然有比所需要的更多的行,并可以使用lambdas简化。 用if阻止: if(action == ACTION_1){ doAction1(); } else if(action == ACTION_2){ doAction2(); } else { doDefaultAction(); } 用开关闭锁: switch(action){ case ACTION_1: doAction1(); break; case ACTION_2: doAction2(); break; default: doDefaultAction(); } 使用实用程序类With lambda来阻止使用下面的代码: with(action) .when(ACTION_1, this::doAction1) .when(ACTION_2, this::doAction2) .byDefault(this::doDefaultAction) 使用lambdas的代码较少,但问题是:比其他人更容易阅读吗? 更容易维护? 关于性能lambda是最差的,但是对于性能不重要的情况,lambda版本比switch / if块更短。 那么,你怎么看? 也许有一种比这更短的Kotlin方法,我只专注于java,我喜欢Kotlin,但编译对于我的项目来说仍然太慢。 当块必须返回一个特定的值时,可以使用类似的工具类。 仅供参考,lambdas类是在这里,我没有检查错误,只是迅速为这个例子: public class With { private final T […]
我在尝试在Kotlin编写的Android应用程序中查询ContactsContract时遇到了一些麻烦。 Android工作室从未解析的引用(例如ContactsContract.Contacts._ID)中提供错误。 有谁知道正确的方式来查询这些Kotlin?
我有一个查询是击中一个具有数组列的表。 当我正在处理我的记录,我想采取数组列的数据,并把它像一个字符串数组,并抓住第一个值。 我曾假设我可以做到以下几点: while (resultSet.next()) { val clients = resultSet.getArray(“clients”) println(clients[0]) } 但是当我这样做,我得到的错误: 错误:(34,3)Kotlin:未解决的参考。 由于接收器types不匹配,以下候选者都不适用:@InlineOnly public operator inline fun Map.get(key:Int):??? 在kotlin.collections中定义@SinceKotlin公共运算符乐趣MatchGroupCollection.get(name:String):MatchGroup? 在kotlin.text中定义 getArray返回typesArray! 所以我假设我可以通过索引访问值。 我需要做什么来访问这个值的数组?