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

Android Studio中用Chaquopy调用Python遇两类错误求解决

Android Studio Giraffe + Chaquopy 14.0.2 集成Python 3.9.13 错误修复指南

错误1:NDK配置语法报错「unexpected tokens (use ';' to separate expressions on the same line)」

问题根源

Android Studio Giraffe适配的Gradle 8.x对Groovy语法校验更严格,原代码大概率存在不可见特殊字符(比如复制粘贴带来的异常换行符),或者配置位置不符合规范。

修复步骤

  1. 清理特殊字符:删除现有ndk { ... }代码,手动重新输入以下内容,避免复制粘贴引入异常字符:
ndk {
    abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
  1. 确认配置位置:这段代码必须放在app模块build.gradle的android -> defaultConfig节点下,完整示例:
android {
    defaultConfig {
        applicationId "com.your.package.name"
        minSdk 21
        // 其他默认配置...
        
        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
        }
    }
}
  1. 备选语法:如果上述写法仍报错,改用数组追加写法:
ndk {
    abiFilters += ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]
}

错误2:找不到「com.chaquo.python.android.PyApplication」类

问题根源

Chaquopy插件未正确引入,或者项目同步不彻底,导致依赖未加载到项目中。

修复步骤

  1. 检查根目录build.gradle配置:确保已添加Chaquopy的仓库和插件依赖:
buildscript {
    repositories {
        google()
        mavenCentral() // 必须添加,Chaquopy托管在此仓库
    }
    dependencies {
        classpath "com.android.tools.build:gradle:8.1.0" // Giraffe对应Gradle版本
        classpath "com.chaquo.python:gradle:14.0.2" // Chaquopy插件依赖
    }
}
  1. 检查app模块build.gradle配置:
    • 顶部必须应用Chaquopy插件:
    plugins {
        id 'com.android.application'
        id 'com.chaquo.python' // 不可缺少
    }
    
    • 在defaultConfig下添加Python版本和源码目录配置:
    android {
        defaultConfig {
            // 其他配置...
            python {
                version "3.9.13" // 必须与你要集成的Python版本完全一致
                srcDir "src/main/python" // 你的.py文件存放目录,可自定义
            }
        }
    }
    
  2. 修正Manifest配置:
    • 直接使用PyApplication:
    <application
        android:name="com.chaquo.python.android.PyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        // 其他属性...>
        // 组件配置...
    </application>
    
    • 若需自定义Application,继承PyApplication后修改Manifest:
    // 自定义Application类
    public class MyApp extends com.chaquo.python.android.PyApplication {
        @Override
        public void onCreate() {
            super.onCreate();
            // 你的自定义逻辑
        }
    }
    
    然后在Manifest中修改android:name为com.your.package.name.MyApp。
  3. 同步并重建项目:
    • 执行File -> Sync Project with Gradle Files
    • 执行Build -> Clean Project,再执行Build -> Rebuild Project

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:16:21