我正在使用新的IDEA版本(2017.3)构建旧的IntelliJ IDEA插件,并给出警告: Warning:Kotlin: Classpath entry points to a non-existent location: /home/ice1000/IDE/idea-IC-172.3544.35/lib/gson-2.5.jar 和错误: Error:(4, 19) Kotlin: Unresolved reference: gson Error:(29, 22) Kotlin: Unresolved reference: Gson Error:(48, 24) Kotlin: Unresolved reference: Gson 似乎GSON库被删除,但我的插件在新版本中运行良好。 但是我现在无法构建我的插件。 有没有解决办法?
我正在寻找超载除法运算符“/”,但希望允许指定genericstypes来指导返回值的types。 这是一个例子: inline operator fun MyType.div(fieldName: String): T { val value = someFunction(fieldName) return convertToExpectedValue(value) } 不幸的是,我无法想出一个方法来明确指定genericstypesT,当它不能被推断。 我想知道是否有像以下这样的工作? val stringVal = myType / “myField” / “myStringField” 请注意,我知道这一点 myType.div(“blah”) 作品。 我正在寻找使用运算符“/”的东西。
我刚开始学习Kotlin协同程序,并试图模拟一些长时间的API调用,并在UI上显示结果: class MainActivity : AppCompatActivity() { fun log(msg: String) = println(“[${Thread.currentThread().name}] $msg”) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.setContentView(R.layout.activity_main) val resultTV = findViewById(R.id.text) as TextView val a = async(CommonPool) { delay(1_000L) 6 } val b = async(CommonPool) { delay(1_000L) 7 } launch() { val aVal = a.await() val bVal = b.await() resultTV.setText((aVal * bVal).toString()) } […]
我创建了一个用Kotlin语言编写的项目的Jar。 Jar包含以下文件夹: com jet kotlin meta-inf okio org 然后我创建了一个android项目,并添加Kotlin和Jar作为依赖项。 当我尝试执行hello world app时,会引发以下exception。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/lib/jvm/java-7-openjdk-amd64/bin/java” finished with non-zero exit value 1 我的应用程序构建gradle文件是 apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ android { compileSdkVersion 22 buildToolsVersion “22.0.1” defaultConfig { applicationId “abc.xyz.kotlin” minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false […]
正如所称,我想有一个徽章,比方说,这个回购 在网上看 ,我发现,例如,这样的: [![npm](https://img.shields.io/npm/dm/localeval.svg)]() 我试图嵌入所有可能的方式[![npm](https://img.shields.io/npm/dm/kotlin-graphics/kotlin-unsigned.svg)]() 但我总是无效或0(这不可能是因为我看到了Github统计) 我错过了什么?
我正在使用Android Studio Beta 1和Android Gradle Plugin 3.0.0-beta1和Kotlin Plugin 1.1.3-2 。 我也有数据绑定启用: dataBinding { enabled = true } 但不幸的是Kotlin类没有看到从布局生成的类,因为我得到这样的错误: 错误:(17,31)未解决的引用:数据绑定 错误:(39,36)未解析的引用:MyFragmentBinding 当然,Java类可以看到这些生成的类。
我是Kotlin的初学者,下面的代码是来自网页的,我不明白参数this@MainActivity中的代码layoutManager = LinearLayoutManager(this@MainActivity) ,你能告诉我吗? 谢谢! import android.os.Bundle import android.support.v7.widget.LinearLayoutManager import android.view.Menu import android.view.MenuItem import kotlinx.android.synthetic.main.activity_main.* import mobi.porquenao.poc.kotlin.R class MainActivity : BaseActivity() { lateinit var listAdapter: MainAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) with (list) { setHasFixedSize(true) layoutManager = LinearLayoutManager(this@MainActivity) listAdapter = MainAdapter() adapter = listAdapter } } override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.main, […]
我正在使用数据绑定库,在Android Studio 3.0中遇到以下问题: somelayout.xml: … 在这个地方: android:text=”@{meeting.title}” Android Studio 3.0强调@符号并通知有关错误: Error:(29, 27) or expected, got ‘@’ 模型类是用Kotlin编写的,如果它有任何相关性的话。 代码完成也不适用于绑定类。 应用程序可以使用gradle命令和Android Studio运行应用程序按钮来成功构建。 所以这只是编辑问题 。 我在Mac上观察这个问题。 在Windows上,它工作正常。 我没有更多的电脑来检查是否与平台相关的问题。
我在Android Studio 3.0.1和Kotlin中运行Instrumentation Tests时遇到了一些问题(我之前的Android Studios和Java没有这样的问题)。 我在androidTest包中创建了这个(非常简单的)类[ 引用 ],如下所示: @RunWith(AndroidJUnit4::class) @LargeTest class DiscoverActivityTest { @JvmField @Rule val mDiscoverActivityTestRule = ActivityTestRule(DiscoverActivity::class.java) @Test fun onViewLoadedShowDiscoverFragment() { onView(withId(R.id.discoverFragmentView)).check(matches(isDisplayed())) } } 当我尝试运行测试时,有两个问题。 首先,它希望在控制台中运行测试,而无需打开模拟器或将apk包部署到设备(因为这只是一个正常的本地unit testing)。 另外,我也得到这个错误信息: 未find类:“com.site.application.discover.DiscoverActivityTest”空的测试套件。 我想在“ Edit Configuration选项(比如这个解决方案的例子)中强制使用检测工具,但是在新的Android Studio 3.0.1中没有这样的选项(比如2.3版本) 更新: 这里是我的gradle文件内容: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ android { compileSdkVersion 27 defaultConfig { applicationId “com.site.application” […]
我正在尝试将Spek测试框架添加到我的Android Studio项目中。 按照说明在这里 ,我结束了以下添加到我的模块build.gradle : testCompile ‘org.jetbrains.spek:spek-api:1.1.5’ testCompile ‘junit:junit:4.12’ testCompile “org.junit.platform:junit-platform-runner:1.0.0” testRuntimeOnly ‘org.jetbrains.spek:spek-junit-platform-engine:1.1.5’ 然后我用@RunWith(JUnitPlatform::class)注释了我的测试。 但是,当我尝试运行测试,我得到: org.junit.platform.commons.util.PreconditionViolationException: Cannot create Launcher without at least one TestEngine; consider adding an engine implementation JAR to the classpath org.junit.platform.commons.util.PreconditionViolationException: Cannot create Launcher without at least one TestEngine; consider adding an engine implementation JAR to the classpath 任何想法我错过了什么?