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

Android Studio中Chaquopy库导入及.py文件调用问题求助

解决Chaquopy在Android Studio中调用Python文件的问题

一、修正Gradle配置错误

你当前的app模块build.gradle.kts中Chaquopy插件设置为apply false,会导致插件未在app模块生效,需按以下方式调整:

修改app模块build.gradle.kts:

plugins {
    alias(libs.plugins.android.application)
    // 移除apply false,直接在app模块应用插件
    id("com.chaquo.python") version "15.0.1"
}

android {
    namespace = "com.kanjengdev.biomey"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.kanjengdev.biomey"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "2.4 (Beta)"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

        // 添加Chaquopy的Python配置块
        python {
            // 指定使用的Python版本,例如3.10(需与Chaquopy版本兼容)
            version = "3.10"
            // 若需安装Python第三方库,可在此添加
            // pip { install("numpy") }
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    buildFeatures {
        viewBinding = true
    }
}

dependencies {
    implementation(libs.appcompat)
    implementation(libs.material)
    implementation(libs.activity)
    implementation(libs.constraintlayout)
    implementation(libs.navigation.fragment)
    implementation(libs.navigation.ui)
    testImplementation(libs.junit)
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)

    // 移除手动添加的chaquopy依赖,应用插件后会自动引入
    // implementation(libs.chaquopy)
}

项目级build.gradle.kts和settings.gradle.kts的配置无需修改,当前设置是正确的。

二、放置Python文件

在app模块下创建src/main/python目录,将你的.py文件放入该目录。例如创建test.py:

def get_greeting(name):
    return f"你好,{name}!"

三、在Android代码中调用Python逻辑

在Activity或Fragment中初始化Chaquopy并调用Python函数:

import com.chaquo.python.Python
import com.chaquo.python.android.AndroidPlatform
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 初始化Chaquopy平台
        if (!Python.isStarted()) {
            AndroidPlatform.initialize(this)
        }

        // 获取Python实例
        val python = Python.getInstance()
        // 导入目标Python模块
        val testModule = python.getModule("test")
        // 调用模块中的函数并获取结果
        val greetResult = testModule.callAttr("get_greeting", "测试用户").toString()
        
        // 展示结果(示例用Toast)
        Toast.makeText(this, greetResult, Toast.LENGTH_SHORT).show()
    }
}

关于文档不一致的说明

Chaquopy不同版本的配置逻辑有差异,你使用的15.0.1版本需遵循以下核心规则:

  • 插件需在app模块直接应用,无需手动添加依赖
  • Python相关配置需放在defaultConfig的python代码块内
  • Python文件必须放在src/main/python目录,Chaquopy会自动打包该目录下的所有文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:02:22