在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
相关产品推荐
相关产品推荐

