在Android Studio Jellyfish中集成Chaquopy时build.gradle.kts报错
解决方案
1. 解决Gradle同步的com.android.build.api.variant.Variant加载错误
该错误核心是Chaquopy插件与Android Gradle Plugin(AGP)版本不兼容或Gradle版本不匹配。Android Studio Jellyfish默认使用AGP 8.2.x,需确保配置匹配:
- 确认根目录
gradle/wrapper/gradle-wrapper.properties中的Gradle版本为8.3或更高,示例:distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip - Chaquopy 15.0.1已支持AGP 8.0-8.2,版本本身兼容,无需更换插件版本。
2. 修复模块级build.gradle.kts中的未定义引用错误
原配置使用了Groovy语法,KTS需调整为兼容写法:
修改后的关键配置代码
plugins { alias(libs.plugins.android.application) id("com.chaquo.python") } android { namespace = "com.example.pythontestwithjava" compileSdk = 34 flavorDimensions += "pyVersion" productFlavors { create("py310") { dimension = "pyVersion" } create("py311") { dimension = "pyVersion" } } defaultConfig { applicationId = "com.example.pythontestwithjava" minSdk = 24 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters += listOf("arm64-v8a", "x86_64") } // 替换原python块,使用KTS的扩展配置方式 configure<com.chaquo.python.PythonExtension> { version = "3.11" pip { install("scipy") install("requests==2.24.0") } } } // ... 其余buildTypes、compileOptions等配置保持不变 ... } // 替换原chaquopy块,调整KTS语法 configure<com.chaquo.python.PythonExtension> { productFlavors { getByName("py310") { version = "3.10" } getByName("py311") { version = "3.11" } } } dependencies { implementation(libs.appcompat) implementation(libs.material) implementation(libs.constraintlayout) implementation(libs.navigation.fragment) implementation(libs.navigation.ui) testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) }
核心修改点
- 在
defaultConfig中,用configure<PythonExtension>包裹Chaquopy配置,替代原Groovy风格的python {}块。 pip块中的install改为KTS函数调用格式:install("依赖名"),而非Groovy的install "依赖名"。- 顶层
chaquopy块替换为configure<PythonExtension>来配置productFlavors。
3. 最终修复步骤
- 执行
File > Invalidate Caches... > Invalidate and Restart清理IDE缓存。 - 终端运行
./gradlew --stop(Windows用gradlew.bat --stop)停止Gradle守护进程。 - 点击
Sync Project with Gradle Files重新同步项目。
内容的提问来源于stack exchange,提问作者user3063547
相关产品推荐
相关产品推荐

