我把一个演示JUnit5项目放在一起来试用这个框架。 该项目包括Gradle(4.4),Java(8)和Kotlin(1.2.0)四个测试用例。 我有下面的Gradle构建脚本(我已经删除了大部分的样板,只保留重要的东西): apply plugin: ‘java’ apply plugin: ‘kotlin’ apply plugin: ‘org.junit.platform.gradle.plugin’ repositories { mavenCentral() } buildscript { ext.kotlin_version = ‘1.2.0’ repositories { mavenCentral() } dependencies { classpath ‘org.junit.platform:junit-platform-gradle-plugin:1.0.2’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } configurations { all { exclude group: ‘junit’, module: ‘junit’ } } project.ext { junitPlatformVersion = ‘1.0.2’ junitJupiterVersion = ‘5.0.2’ } dependencies { […]
我正在尝试创建一个文件列表。 比方说,我有这样的结构: cards cardId1 authorizedUser = someuserid1 cardId1b authorizedUser = someuserid1 cardId2 authorizedUser = someuserid2 我想列出“someuserid1”的前两个文件和“someuserid2”的最后一个文件。 什么是最好的办法呢? 我尝试使用安全规则,但没有奏效: service cloud.firestore { match /databases/{database}/documents { match /cards/{cardid} { allow read, write: if resource.data.authorizedUser == request.auth.uid; } } } 而这个我的Kotlin代码: val query = FirebaseFirestore.getInstance() .collection(“cards”) .limit(50) val options = FirestoreRecyclerOptions.Builder() .setQuery(query,Card::class.java) .build() adapter = CardFireAdapter(options) 任何想法,我在这里失踪?
我决定使用kotlin和Room library,而且我真的遇到了很多问题,并且因阅读参考文献和find解决方案而感到厌倦。我的数据类: @Entity data class HistorySong( @PrimaryKey var SongId: Int =0, @ColumnInfo(name = “song_name”) var songName: String=””, @ColumnInfo(name = “song_artist”) var songArtist: String=””, @ColumnInfo(name = “song_link”) var songLink: String=””, @ColumnInfo(name = “image_path”) var songImagePath: String=””, @ColumnInfo(name=”is_favoutire”) var songisFavourite: Boolean= false ) 我的堂课: @Dao interface HistorySongDao { @Delete fun deleteSong(historySongDao: HistorySongDao) @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(vararg […]
请帮助我我几天来一直在盯着这个相同的错误。 我运行的是android studio 2.3(我也遇到了android studio 3.0的这个问题)。 这是我的消息中显示的内容: 错误:执行任务’:app:kaptDebugKotlin’失败。 内部编译器错误。 查看日志了解更多详情 这是我的日志给我更多的细节: 2017-09-01 21:09:57,768 [34977075]信息 – roid.sdk.MessageBuildingSdkLog – 来自KotlinOutputParser的exception2017-09-01 21:09:57,771 [34977078]信息 – roid.sdk.MessageBuildingSdkLog – com.android.ide .common.blame.Message。(com.android.ide.common.blame.Message $ Kind,java.lang.String,java.lang.String,com.google.common.collect.ImmutableList)java.lang.NoSuchMethodException: (com.android.ide.common.blame.Message $ Kind,java.lang.String,java.lang.String,com.google.common.collect.ImmutableList)at在java.lang.Class.getConstructor(Class.java:1825)的org.jetbrains.kotlin.android.KotlinOutputParserHelper $ simpleMessageConstructor $ 2.invoke(KotlinOutputParserHelper.kt:171 )at org.jetbrains.kotlin.android.KotlinOutputParserHelper $ simpleMessageConstructor $ 2.invoke(KotlinOutputParserHelper.kt:143)at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130)at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSim 请参阅org.jetbrains.kotlin.org上的org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250)处的orMe.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272)中的pleMessageConstructor(KotlinOutputParserHelper.kt) .android.KotlinOutputParserHelper.createMessage $ default(KotlinOutputParserHelper.kt:244)at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41)at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java :28)at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86)at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43 )at com.andll.tools.idea.gradle.project.build.invoker.GradleTasksExecutor $ GradleTasksExecutorImpl.lambda […]
为了在Eclipse中创建我的第一个简单的Kotlin项目,我遵循了Kotlin官方网站的Eclipse Luna入门教程中的步骤,即: 从Eclipse Marketplace安装Eclipse的Kotlin Plugin 打开Kotlin的观点,并创建一个Kotlin项目 使用main方法在“src”文件夹内创建文件“hello.kt” 用鼠标右键单击文件>运行方式> Kotlin应用程序 但是,我不断在Eclipse控制台中得到以下错误: 错误:无法find或加载主类HelloKt 我已经仔细检查了我的项目的运行配置,它确实设置“主类”为HelloKt (我100%确定它不存在)。 另外,当我点击“搜索”按钮时,Eclipse发现的唯一项目是HelloKt – (default package) (这又不存在)。 为了完整起见,下面findhello.kt文件的代码: fun main(args: Array) { println(“Hello, World”) } 我注意到教程和我做了什么之间的差异: 我正在使用不同的Eclipse版本(本教程建议Luna;我使用Mars.2)。 我正在使用不同的JDK版本(教程不建议任何特定的版本,但从图像,我们可以看到他们使用jdk1.6.0_45 ,而我使用jdk1.7.0_79 。 请注意,我正在使用Kotlin Eclipse插件的最新版本,所以这与本文中的情况不一样。 这些是我当前安装的版本: Kotlin 0.7.2.v20160930-0748 kotlin-eclipse-policy 0.7.2.v20160928-1525 kotlin-weaving-feature 0.7.2.v20160928-1525 运行应用程序时,这些差异中的任何一个都可能是错误的原因吗? 您是否看到/了解有关此情况的任何潜在原因或已知错误? 更新(2017年5月14日) 试用Eclipse Neon.3(eclipse.buildId = 4.6.3.M20170301-0400),JDK 1.8.0_111,Kotlin 0.8.2.v20170314-0957(kotlin-eclipse-policy 0.8.2.v20170314-0957,kotlin-weaving – 特征0.8.2.v20170314-0957,Equinox Weaving SDK 1.2.0.201701131634)。 […]
在Kotlin中,我只想在另一个variables不为空的情况下做一个赋值操作(否则,不操作)。 我可以想到两个简洁的方法: fun main(args: Array) { var x: Int? = null var n = 0 // … do something … x?.let { n = it } // method 1 n = x ?: n // method 2 } 不过,考虑到我必须做的频率,他们不够简洁。 第一种方法似乎是矫枉过正。 第二种方法是在需要expression式之后唠叨?: 我怀疑一定有更好的办法,比如n =? x n =? x ? 或者n = x? ? 在那儿?
那么我试着从kotlin本地回购中运行Calculator示例。 遵循以下步骤: 要构建并运行示例,请执行以下操作: 用Xcode打开samples / calculator / calculator.xcodeproj。 通过项目导航器打开项目的目标,转到标签“常规”。 在“身份”部分,以反向DNS格式将包ID更改为唯一字符串。 然后在“签名”部分选择团队。 看Xcode。 文档的更多信息。 现在使用Xcode在连接的iPhone上构建并运行应用程序。 但是当我尝试在Xcode中构建应用程序时,出现以下错误,并在其下面显示日志: … … The target is not enabled on the current host: linux . Target ‘linux’ of artifact ‘libgit2’ is not supported on the current host . The target is not enabled on the current host: linux . The target is […]
我正在使用Kotlin Android Extensions访问片段中的所有视图,该视图按预期工作,即使在屏幕旋转后也可以正常访问。 当我尝试访问Rx-Java可观察间隔内的视图时,问题就开始了: var interval = Observable.interval(10, TimeUnit.SECONDS, Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) interval.retry().subscribe { updateUi(); } 如果我间隔旋转屏幕。 updateUi()方法下次作为observable的一部分运行时,其内部的视图将为空,并且应用程序将崩溃,并出现以下exception: io.reactivex.exceptions.OnErrorNotImplementedException:text_view不能为null 但是,如果我尝试运行可观察性以外的方法,一切都将正常工作。 我知道,使用findViewById()访问视图将正确地检索视图,但是这会破坏具有kotlin-android-extensions的purpuose。
我有一个在kotlin中编码的recyclerview适配器。 我正在努力突出回收商视图的前四项。 我该怎么做? class BodyPartAdapter(var context: Context,var mRecyclerList: RecyclerView,var todayDate:Int, var bodyPartData: ArrayList, var bodyPartSelection: BodyPartSelection, var abc: Int, var firsttime: Boolean, var todayBodypartid: Int, b1: Boolean,var selectedBodypartId: Int, var bodyPartSelected: Boolean): RecyclerView.Adapter() { interface BodyPartSelection { fun onbodyPartClicked(firsttime:Boolean,bodyPart: BodyPart,selected:Boolean) } override fun getItemCount(): Int { return bodyPartData.size } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): […]
当Spring初始化时,我得到以下exception: https : //pastebin.com/abMuS4v3 这里是发生exception的kotlin代码,它是实体构造函数的一部分: @ElementCollection(fetch = FetchType.EAGER) @CollectionTable(joinColumns = [(JoinColumn(name = “id”))]) @Column(name = “authenticated_factor”) val authenticatedFactors: MutableSet = hashSetOf(), CredentialType是一个枚举类。 有趣的是,这个exception发生在MySQL上,但不在MariaDB上。 提前致谢!