我无法运行任何测试或运行应用程序或调试器,因为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 文件
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) 我试图在我的项目中放置一个按钮切换组,其行为类似于单选按钮组,但看起来不像单选按钮组(即,当选择一个按钮时,将取消选择其他按钮)。
我遵循了在网上找到的单选按钮模式,但这似乎不起作用。有没有办法做到这一点?我已经到了这样的地步:按钮位于我想要的位置,但它们都被禁用了。
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 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
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 …
我正在使用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)