java.lang.IllegalStateException: 未找到函数 androidx.compose.internal.restartableFunctionInstance
java.lang.IllegalStateException: Function not found androidx.compose.internal.restartableFunctionInstance
当我尝试 运行 应用程序时,出现以下错误
"java.lang.IllegalStateException: Function not found androidx.compose.internal.restartableFunctionInstance"
和以下警告:
C:\Users\amr\.gradle\caches\transforms-2\files-2.1795ea219aedbe5401209deaa0aa414\jetified-kotlin-stdlib-jdk7-1.3.60-eap-25.jar: Runtime JAR file has version 1.3 which is older than required for API version 1.4
这是我在 activity 中的代码:
class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle ? ) {
super.onCreate(savedInstanceState)
setContent {
Text("Hello World")
}
}
}
我正在使用 android studio 4.2 canary 2
这是完整的 build.gradle
文件"
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.myfirstCompse"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
compose true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.ui:ui-framework:0.1.0-dev09'
implementation 'androidx.ui:ui-tooling:0.1.0-dev09'
implementation 'androidx.ui:ui-layout:0.1.0-dev09'
implementation 'androidx.ui:ui-material:0.1.0-dev09'
}
更新:当我将依赖版本更改为 dev09,并按照文档建议添加 compileOptions
块时
composeOptions {
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
它产生了以下错误:
e: java.util.NoSuchElementException: Collection contains no element matching the predicate.
将 kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
添加到您的 composeOptions
闭包中:
composeOptions {
kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
你肯定需要这个;我不确定它是否会清除此特定错误。
您可能希望检查您在项目级 build.gradle
文件中使用的 Kotlin 版本。 1.3.70
是已知的安全版本(它与我的代码片段中的编译器插件版本匹配)。
当我尝试 运行 应用程序时,出现以下错误
"java.lang.IllegalStateException: Function not found androidx.compose.internal.restartableFunctionInstance"
和以下警告:
C:\Users\amr\.gradle\caches\transforms-2\files-2.1795ea219aedbe5401209deaa0aa414\jetified-kotlin-stdlib-jdk7-1.3.60-eap-25.jar: Runtime JAR file has version 1.3 which is older than required for API version 1.4
这是我在 activity 中的代码:
class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle ? ) {
super.onCreate(savedInstanceState)
setContent {
Text("Hello World")
}
}
}
我正在使用 android studio 4.2 canary 2
这是完整的 build.gradle
文件"
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.myfirstCompse"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
compose true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.ui:ui-framework:0.1.0-dev09'
implementation 'androidx.ui:ui-tooling:0.1.0-dev09'
implementation 'androidx.ui:ui-layout:0.1.0-dev09'
implementation 'androidx.ui:ui-material:0.1.0-dev09'
}
更新:当我将依赖版本更改为 dev09,并按照文档建议添加 compileOptions
块时
composeOptions {
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
它产生了以下错误:
e: java.util.NoSuchElementException: Collection contains no element matching the predicate.
将 kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
添加到您的 composeOptions
闭包中:
composeOptions {
kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
kotlinCompilerExtensionVersion "0.1.0-dev09"
}
你肯定需要这个;我不确定它是否会清除此特定错误。
您可能希望检查您在项目级 build.gradle
文件中使用的 Kotlin 版本。 1.3.70
是已知的安全版本(它与我的代码片段中的编译器插件版本匹配)。