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语法校验更严格,原代码大概率存在不可见特殊字符(比如复制粘贴带来的异常换行符),或者配置位置不符合规范。
修复步骤
- 清理特殊字符:删除现有
ndk { ... }代码,手动重新输入以下内容,避免复制粘贴引入异常字符:
ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" }
- 确认配置位置:这段代码必须放在app模块
build.gradle的android -> defaultConfig节点下,完整示例:
android { defaultConfig { applicationId "com.your.package.name" minSdk 21 // 其他默认配置... ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } } }
- 备选语法:如果上述写法仍报错,改用数组追加写法:
ndk { abiFilters += ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"] }
错误2:找不到「com.chaquo.python.android.PyApplication」类
问题根源
Chaquopy插件未正确引入,或者项目同步不彻底,导致依赖未加载到项目中。
修复步骤
- 检查根目录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插件依赖 } }
- 检查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文件存放目录,可自定义 } } } - 修正Manifest配置:
- 直接使用PyApplication:
<application android:name="com.chaquo.python.android.PyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" // 其他属性...> // 组件配置... </application>- 若需自定义Application,继承PyApplication后修改Manifest:
然后在Manifest中修改// 自定义Application类 public class MyApp extends com.chaquo.python.android.PyApplication { @Override public void onCreate() { super.onCreate(); // 你的自定义逻辑 } }android:name为com.your.package.name.MyApp。 - 同步并重建项目:
- 执行
File -> Sync Project with Gradle Files - 执行
Build -> Clean Project,再执行Build -> Rebuild Project
- 执行
内容的提问来源于stack exchange,提问作者Kuma
相关产品推荐
相关产品推荐

