标签: kotlin

不幸的是MyApp已经停止了.我怎么解决这个问题?

我正在开发一个应用程序,每次运行它时,我都收到消息:

不幸的是,MyApp已经停止了.

我该怎么做才能解决这个问题?


关于这个问题 - 显然受到什么是堆栈跟踪的启发,以及如何使用它来调试我的应用程序错误?,有很多问题表明他们的应用程序崩溃了,没有任何进一步的细节.这个问题旨在指导新手Android程序员如何尝试自己解决问题,或者提出正确的问题.

java crash debugging android kotlin

759
推荐指数
18
解决办法
41万
查看次数

什么是Kotlin中的Java静态方法?

staticKotlin中没有关键字.

static在Kotlin中表示Java方法的最佳方法是什么?

java kotlin

543
推荐指数
11
解决办法
18万
查看次数

Kotlin三元条件算子

Kotlin中这个表达的等价物是什么?

a ? b : c
Run Code Online (Sandbox Code Playgroud)

这不是Kotlin中的有效代码.

ternary-operator kotlin

398
推荐指数
22
解决办法
6万
查看次数

Android Kotlin 中的重复类

图片示例

我不断收到错误,表明类中存在重复错误。 这是我在 org.jetbrains.kotlin 文件夹.idea/libraries下的内容

问题似乎是因为 Kotlin 有两种不同的依赖项,来自stdlibstdlibjdk8,但我不知道如何从我的模块/项目依赖项中删除其中之一。我该怎么做?

这是完整的错误代码:

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.io.path.ExperimentalPathApi found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathRelativizer found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathsKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate …
Run Code Online (Sandbox Code Playgroud)

java dependencies android kotlin

392
推荐指数
21
解决办法
23万
查看次数

如何将kotlin源文件转换为java源文件

我有一个Kotlin源文件,但我想把它翻译成Java.

如何将Kotlin转换为Java源代码?

java code-conversion kotlin

350
推荐指数
6
解决办法
17万
查看次数

报警管理器示例

我想在我的项目中实现一个计划功能.所以我用Google搜索了一个报警管理器程序,但我找不到任何例子.

任何人都可以帮我一个基本的报警管理程序吗?

java android alarmmanager kotlin

329
推荐指数
5
解决办法
31万
查看次数

如何检查"lateinit"变量是否已初始化?

我想知道是否有办法检查lateinit变量是否已初始化.

class Foo() {

    private lateinit var myFile: File

    fun bar(path: String?) {
        path?.let { myFile = File(it) }
    }

    fun bar2() {
        myFile.whateverMethod()
        // May crash since I don't know whether myFile has been initialized
    }
}
Run Code Online (Sandbox Code Playgroud)

kotlin

322
推荐指数
7
解决办法
9万
查看次数

如何在 build.gradle.kts 中设置compileJava'任务(11)和'compileKotlin'任务(1.8)jvm目标对相同Java版本的兼容性?

构建.gradle.kts

buildscript {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
    dependencies {
        classpath ("com.android.tools.build:gradle:7.0.2")
        classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30")
        classpath("gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:${Versions.spotbugsGradlePluginVersion}")
        classpath("se.bjurr.violations:violations-gradle-plugin:${Versions.violationsVersion}")

    }
}
//android {
//    compileOptions {
//        sourceCompatibility = JavaVersion.VERSION_11
//                targetCompatibility = JavaVersion.VERSION_11
//    }
//
//    kotlinOptions {
//        jvmTarget = JavaVersion.VERSION_11.toString()
//    }
//}
plugins {
    `maven-publish`
    `java-gradle-plugin`
    `kotlin-dsl`
    id ("io.gitlab.arturbosch.detekt") version ("1.18.1")
}
repositories {
    google()
    mavenCentral()
    gradlePluginPortal()
}

dependencies {
    compileOnly(gradleApi())
    testImplementation(gradleTestKit())
    testImplementation("junit:junit:${Versions.jUnitVersion}")
}
val generatedSources = tasks.register<GenerateVersionsFileTask>("generateSources")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:“compileJava”任务(当前目标是 11)和“compileKotlin”任务(当前目标是 1.8)jvm 目标兼容性应设置为相同的 Java 版本。

当我取消注释时android …

java dependencies kotlin android-gradle-plugin gradle-kotlin-dsl

275
推荐指数
12
解决办法
23万
查看次数

Kotlin和新的ActivityTestRule:@Rule必须是公开的

我正在尝试在Kotlin中为我的Android应用程序进行UI测试.由于使用ActivityTestRule的新系统,我无法使其工作:它正确编译,并在运行时,我得到:

java.lang.Exception: The @Rule 'mActivityRule' must be public.
    at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90)
    at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67)
    at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55)
    at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50)
    at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170)
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103)
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74)
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55)
    at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38)
    at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36)
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
    at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57)
    at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
    at org.junit.runner.Computer.getRunner(Computer.java:38)
    at org.junit.runner.Computer$1.runnerForClass(Computer.java:29)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:98)
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
    at org.junit.runners.Suite.<init>(Suite.java:79)
    at org.junit.runner.Computer.getSuite(Computer.java:26)
    at android.support.test.internal.runner.TestRequestBuilder.classes(TestRequestBuilder.java:691)
    at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:654)
    at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:329)
    at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:226)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Run Code Online (Sandbox Code Playgroud)

以下是我宣称的mActivityRule:

RunWith(javaClass<AndroidJUnit4>())
LargeTest
public class RadisTest {

    Rule
    public val mActivityRule: ActivityTestRule<MainActivity> = …
Run Code Online (Sandbox Code Playgroud)

testing android kotlin android-espresso

246
推荐指数
5
解决办法
3万
查看次数

Kotlin的Val和Var

varvalKotlin有什么区别?

我已经通过这个链接:

https://kotlinlang.org/docs/reference/properties.html

如此链接所述:

只读属性声明的完整语法与可变的两种方式不同:它以val而不是var开头,不允许使用setter.

但就在有一个使用setter的例子之前.

fun copyAddress(address: Address): Address {
    val result = Address() // there's no 'new' keyword in Kotlin
    result.name = address.name // accessors are called
    result.street = address.street
    // ...
    return result
}
Run Code Online (Sandbox Code Playgroud)

var和之间的确切区别是val什么?

为什么我们两个都需要?

不是KotlinVariables 的重复,与Java的差异.var vs val?因为我在询问有关文档中特定示例的疑问,而不仅仅是一般性的.

kotlin

246
推荐指数
16
解决办法
9万
查看次数