Tag: android

从Android Studio运行Kotlin Koans测试

Windows 10,Android Studio 3.0。 所以我只是从master分支克隆Kotlin Koans回购,并试图用两种不同的方式运行测试: 1.使用IDE,当按下测试方法旁边的绿色箭头时,我看到: Process finished with exit code 1 Class not found: "i_introduction._0_Hello_World.N00StartKtTest"Empty test suite. 2.当我尝试使用终端,如Kotlin Koans自述: gradlew test –tests i_* 它给了我一个输出: :compileKotlin Using kotlin incremental compilation Caught an exception trying to connect to Kotlin Daemon java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context 我已经看到了很多的建议,可能在jdk文件夹中缺少tools.jar,我正在使用内部的Android Studio jdk,并在这里介绍。 我也尝试禁用gradle deamons – 结果仍然是一样的。

匕首2在Kotlin未解决的参考

我正在尝试在我的Android项目中使用Dagger 2,我在Kotlin中编写代码。 我从Dagger 2回购Android的简单的例子。 我已经设法在Android Studio中使用来自dagger-android-gradle-sample的示例正确配置项目,它包含正确配置的gradle文件。 现在我开始将java类更改为kotlin。 这是自动转换的DemoApplication.java在kotlin中的样子: public class DemoApplication : Application() { Singleton Component(modules = array(javaClass<AndroidModule>())) trait ApplicationComponent { public fun inject(application: DemoApplication) public fun inject(homeActivity: HomeActivity) public fun inject(demoActivity: DemoActivity) } public var component: ApplicationComponent? = null override fun onCreate() { super.onCreate() component = `Dagger_DemoApplication$ApplicationComponent`.builder().androidModule(AndroidModule(this)).build() component!!.inject(this) } } 匕首生成的类在Kotlin中可见,但它抱怨($)类名称中使用的符号。 ($)在Kotlin有特殊的目的,所以我想这就是为什么。 你可以注意到auto-convertion用(`)符号封装类名,所以编辑器不会抱怨它。 不幸的是,编译器失败: […]

Gradle kotlin不支持的方法Dependencies.getAtoms()

刚刚用Studio 3.0 Canary 3开始一个新的Android项目使用kotlin,只是试图让它做一个gradle项目同步。 目前失败 Error:Unsupported method: Dependencies.getAtoms(). The version of Gradle you connect to does not support that method. To resolve the problem you can change/upgrade the target version of Gradle you connect to. Alternatively, you can ignore this exception and read other information from the model. 任何人都知道这是什么意思,如何解决这个问题? 可能只是需要改变一些东西的版本。 gradle包装: #Mon Jun 19 08:02:32 […]

Android的Kotlin扩展开销

在代码中使用kotlin扩展是个好主意吗? 我非常想念iOS的扩展,但这是在android中使用这些东西的好方法吗? 请参阅http://antonioleiva.com/kotlin-android-extension-functions/ 有没有更好的解决方案呢?

Java如何调用kotlin扩展方法

我用kotlin写了一个扩展方法 package com.zhongan.zachat.extention import android.content.Context import android.widget.Toast /** * Created by Carl on 2016/12/1. * * */ fun Context.toastLong(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_LONG).show() fun Context.toastshort(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_SHORT).show() 当我在kotlin activity调用toastLong("test")是可以的。 但是在java actvity IDE中却说找不到这个方法。 如何在java代码中调用kotlin扩展方法

在新的Android Studio项目中配置Kotlin

我已经安装了kotlin插件,并在studio中创建了一个新项目。 我去过工具> Kotlin>在项目中配置Kotlin,并遵循所有的步骤,但我的gradle构建不起作用。 我得到这个错误: Error:(24, 0) Declaring custom 'clean' task when using the standard Gradle lifecycle plugins is not allowed. 打开文件 有人能告诉我什么是错的,或者告诉我为kotlin安装android studio的正确方法。 谢谢。

Kotlin用Android构建问题

将Kotlin集成到一个使用multidex的大型项目中。 所以当我尝试构建时,我得到这个错误: :incrementalDesygnerDebugJavaCompilationSafeguard UP-TO-DATE :compileDesygnerDebugKotlin WARN: Failed to initialize native filesystem for Windows java.lang.RuntimeException: Could not find installation home path. Please make sure bin/idea.properties is present in the installation directory. 路径似乎正确配置和idea.properties文件似乎在那里: C:\Program Files\Android\Android Studio\bin\idea.properties 建筑物需要几分钟才能停下来,所以我从Windows的任务管理器手动停止。 当我重试 – 构建成功! 但是,当我改变一条线,并重建它再次显示相同的错误。 有时我也会得到这个: The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError: PermGen […]

kotlin库模块中调试目录的未解决的参考

我第一次使用Kotlin开发Android应用程序。 目前我正在使用我的项目中的一个库模块(“数据”),与主应用程序模块分开: > [Root directory] > app > […] > data > src > debug > kotlin > com.domain.app > […] > main > kotlin > com.domain.app > […] > release > kotlin > com.domain.app > […] 我遇到了一个障碍:每当data.src.main内的文件引用data.src.debug中的文件时,构建过程将失败,并显示消息“Unresolved reference:[class name]”。 但是,当我在data.src.release中引用文件时,它不会失败。 在这两种情况下,我已经三重检查了语法,目录和构建变体。 我没有修改我的build.gradle文件中的调试版本或发布版本 – 我正在使用他们的默认设置。 我的源文件是: android { … sourceSets { main.java.srcDirs += 'src/main/kotlin' debug.java.srcDirs […]

用kotlin设置领域时出错

我在现有的Android项目中使用了一些kotlin类(已经有领域),kotlin类没有使用任何领域功能,现在在运行时我得到这个错误 :app:compileDebugKotlin Using kotlin incremental compilation :app:compileDebugJavaWithJavac Destination for generated sources was modified by kapt. Previous value = /home/debu/AndroidStudioProjects/WT_Application/app/build/generated/source/apt/debug error: Annotation processor '__gen.AnnotationProcessorWrapper_debug_io_realm_processor_RealmProcessor' not found 1 error :app:compileDebugJavaWithJavac FAILED :app:copyDebugKotlinClasses SKIPPED FAILURE: Build failed with an exception. 我的应用程序的build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'realm-android' android { def globalConfiguration = rootProject.extensions.getByName("ext") compileSdkVersion globalConfiguration.getAt("androidCompileSdkVersion") […]

什么是Kotlin Gradle依赖关系中的“实现”?

我正在使用Android Studio 3.0 Preview来启动新的Kotlin项目。 当我尝试在build.gradle添加依赖项时,我看到了implementation范围,而不是通常的compile 。 androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) implementation 'com.android.support:appcompat-v7:25.3.1' testImplementation 'junit:junit:4.12' 还有androidTestImplementation和testImplementation作用域。 最后,我添加compile添加第三方依赖关系,它的工作原理。 compile 'io.reactivex.rxjava2:rxandroid:2.0.1' 所以我的问题是.. 什么是implementation , androidTestImplementation和testImplementation范围? 它与compile ,测试compile和androidTestCompile有什么不同吗? 我应该为我的Kotlin项目使用哪一个? 编辑:我的不好,这个问题不是Kotlin特定的。 这是新的Android Gradle插件配置 。