You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Android Studio(Kotlin)中用Chaquopy导入Python遇buildPython报错求助

解决Chaquopy中Unresolved reference: buildPython错误

错误原因

你把Chaquopy专属的buildPython属性放在了Android的defaultConfig块中,这个属性属于Chaquopy扩展配置,不属于Android插件的配置范围,因此会触发未解析引用错误。此外,你在chaquopy.defaultConfig中错误地将buildPython当作方法调用并传入脚本路径,这也不符合Chaquopy的配置规范。

修正后的配置代码

项目级build.gradle.kts(保持现有配置即可)

buildscript {
    repositories {
        google()
        mavenCentral()
        maven("https://chaquo.com/maven")
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.7.2") 
        classpath("com.chaquo.python:gradle:16.0.0")
    }
}

plugins {
    id("com.android.application") version "7.4.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.10" apply false
    id("com.chaquo.python") version "16.0.0" apply false
}

模块级build.gradle.kts(关键修改点已标注)

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android") 
    id("com.chaquo.python")
}

android {
    namespace = "com.example.test"
    compileSdk = 35

    defaultConfig {
        applicationId = "com.example.test"
        minSdk = 31
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"

        // 移除这里的buildPython配置,它不属于Android defaultConfig
        ndk {
            abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64",  "x86")
        }
    }
}

chaquopy{
    defaultConfig {
        version = "3.8"
        // 正确配置本地Python解释器路径
        buildPython = "C:/Python38/python.exe"
        extractPackages("")
        
        // 移除错误的buildPython方法调用,执行Python脚本应在Android代码中实现
    }
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.21")
}

额外说明

如果需要运行test.py脚本,不要在Gradle配置中处理,应该在Android Kotlin/Java代码中通过Chaquopy API调用:

// 示例:在Activity中调用Python脚本
import com.chaquo.python.Python
import com.chaquo.python.android.AndroidPlatform

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        if (!Python.isStarted()) {
            AndroidPlatform.initialize(this)
        }
        val python = Python.getInstance()
        // 调用test.py中的函数,假设脚本里有main()函数
        python.getModule("test").callAttr("main")
    }
}

内容的提问来源于stack exchange,提问作者LifeLove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:52:21