小编pet*_*art的帖子

无法找到方法 void org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions.setUseIR(boolean)

我无法运行任何测试或运行应用程序或调试器,因为this error:

`Unable to find method void org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions.setUseIR(boolean)`
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有提供的解决方案并点击了该File > Invalidate Caches/Restart...选项。

在此输入图像描述

这是一个使用 Kotlin 和 Java 编写的 Android Studio 项目,包含 Jetpack Compose、Retrofit2、OkHttp3。


更新:这是我的 build.gradle 文件

build.gradle项目:

buildscript {
    ext.kotlin_version = '1.6.0-RC'
    ext {
        compose_version = '1.0.1'
        fragment_version = "1.3.6"
    }
    repositories {
        google()
        mavenCentral()
        maven {
            url = uri("https://plugins.gradle.org/m2/")
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle …
Run Code Online (Sandbox Code Playgroud)

java gradle kotlin android-studio okhttp

14
推荐指数
2
解决办法
1万
查看次数

在 Jetpack Compose 中创建不带单选按钮的切换按钮组

我试图在我的项目中放置一个按钮切换组,其行为类似于单选按钮组,但看起来不像单选按钮组(即,当选择一个按钮时,将取消选择其他按钮)。

我遵循了在网上找到的单选按钮模式,但这似乎不起作用。有没有办法做到这一点?我已经到了这样的地步:按钮位于我想要的位置,但它们都被禁用了。

MovieSpotterTheme() {
                Card(
                    modifier = Modifier
                        .fillMaxWidth()
                ) {
                    @Composable
                    fun MaterialButtonToggleGroup() {
                        var selected by remember { mutableStateOf("Android") }

                        val buttonGroup = listOf("Popular Movies", "Search Movies")

                     
                        val onSelectedChange = { text: String ->
                            selected = text
                        }
                        Row(
                            horizontalArrangement = Arrangement.SpaceEvenly
                        ) {
                            buttonGroup.forEach { text ->
                                Row(Modifier
                                    .selectable(
                                        selected = (text == selected),
                                        onClick = { onSelectedChange(text) }
                                    )
                                    .padding(horizontal = 16.dp)
                                ) {
                                    Button(
                                        enabled = (text == selected),
                                        onClick = { onSelectedChange(text) }
                                    ) …
Run Code Online (Sandbox Code Playgroud)

android android-togglebutton android-jetpack-compose

7
推荐指数
1
解决办法
7403
查看次数

使用类型 location 启动 TGS ... TargetSDK=34 - Android 14 启动时崩溃

我昨晚更新到了Android 14。当我尝试在我的设备上安装我们的应用程序(来自 Play 商店)时,我在打开应用程序时开始崩溃

FATAL EXCEPTION: main
Process: com.myapp.appname, PID: 1518
java.lang.RuntimeException: Unable to create service com.myapp.StartupService: 
java.lang.SecurityException: Starting FGS with type location callerApp=ProcessRecord{95e97ef 
1518:com.myapp.appname/u0a370} targetSDK=34 requires permissions: all of the permissions allOf=true 
[android.permission.FOREGROUND_SERVICE_LOCATION] any of the permissions allOf=false 
[android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION] and the app 
must be in the eligible state/exemptions to access the foreground only permission at 
android.app.ActivityThread.handleCreateService(ActivityThread.java:4664)
Run Code Online (Sandbox Code Playgroud)

我尝试将一些新需要的权限添加到我的清单中。当一切都在测试版上进行测试时,它工作得很好(据我所知)。

我还尝试了这个问题中显示的解决方案: Foreground Service crashing on Android 14,这看起来非常相似。

这是我的文件。我试图包含我认为必要的内容。请告诉我是否有一些内容可以帮助提供更多背景信息。

显现

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.myapp"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission …
Run Code Online (Sandbox Code Playgroud)

android android-manifest kotlin android-permissions foreground-service

6
推荐指数
1
解决办法
3609
查看次数

Jetpack Compose AlertDialog 错误:“@Composable 调用只能在 @Composable 函数的上下文中发生”

stackoverflow 上似乎有无数对此错误的解释,但没有一个能解决我的问题。

我正在构建一个撰写警报对话框。我试图显示一个可以根据数据而变化的选项列表。

对话

@Composable
fun OptionSelectComposeDialog(
   vm: OptionSelectDialogViewModel
){
...
val optionList = vm.optionList
Column {
    if (openDialog.value) {
        AlertDialog(
            ...
            text = {
                OptionListDialogContent(optionList)
            },
            ...
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

OptionListDialogContent可组合函数中,我尝试打印列表,但Text可组合函数给出错误。

OptionListDialogContent

@Composable
fun OptionListDialogContent(optionList: OptionList?) {

    val optionItemArray = optionList?.getOptionItemArray(null)

    LazyColumn() {
        if (optionItemArray != null) {
            optionItemArray.forEach { optionItem ->
                Text(text = optionItem.toString()) // Error "@Composable invocations can only happen from the context of a @Composable function"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我怀疑对toString …

android text dialog kotlin android-jetpack-compose

5
推荐指数
1
解决办法
6576
查看次数

未解决的参考:mockwebserver

我正在使用mockwebserver编写一个测试套件。我从官方 github 页面输入了所有依赖项。每次我尝试运行我收到的测试Unresolved reference: mockwebserver

没有导入选项。进口时的字体不是红色的。Android Studio 不提示任何内容。除了与未解析的引用相关的错误之外,没有其他错误。

截屏: 在此输入图像描述


构建.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id("org.jetbrains.kotlin.android.extensions")
}

android {
    compileSdk 31

    useLibrary("android.test.runner")
    useLibrary("android.test.base")
    useLibrary("android.test.mock")

    defaultConfig {
        applicationId "com.example.moviespotter"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    buildFeatures {
        viewBinding = true
        compose true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.5.21' …
Run Code Online (Sandbox Code Playgroud)

junit4 android-studio okhttp mockwebserver

1
推荐指数
1
解决办法
1581
查看次数