Android Studio中调用python的gradle的配置

复制代码
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.devtools.ksp")
    id("kotlin-kapt")
    id("com.chaquo.python")
}

android {
    namespace = "com.jsd.digital"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.jsd.digital"
        minSdk = 24
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }

        ndk {
            abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64")
        }

        chaquopy {
            defaultConfig {
                buildPython("D:\\anaconda3\\envs\\face_re\\python.exe")

                pip {
                    options("--extra-index-url", "http://pypi.mirrors.ustc.edu.cn/simple/")
                    options("--trusted-host", "pypi.mirrors.ustc.edu.cn")
                    install("opencv-python==4.5.1.48")
                    install("dlib==19.19.0")
                    install("opencv_contrib_python==4.5.1.48")
                    install("deepface==0.0.74")
                    install("tensorflow==2.1.0")
                    install("protobuf==3.20.0")
                    install("ffmpeg-python")
                }
            }

        }
    }

    signingConfigs {
        create("keyStore") {
            storeFile = file("../digital.jks")
            storePassword = "rootgbjiGfrvf6KG7khd8K67h6g56f9q"
            keyAlias = "digital"
            keyPassword = "rootgbjiGfrvf6KG7khd8K67h6g56f9q"
        }
    }

    buildTypes {
        val signConfig = signingConfigs.getByName("keyStore")
        debug {
            signingConfig = signConfig
        }
        release {
            signingConfig = signConfig
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
    buildFeatures {
        viewBinding = true
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.4.3"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
    ndkVersion = "28.0.12433566 rc1"
    buildToolsVersion = "34.0.0"
    kapt {
        arguments {
            arg("AROUTER_MODULE_NAME", project.name)
        }
    }
}

dependencies {
    // 引用 base 模块
    implementation(project(":base"))
    // 登录模块
    implementation(project(":login"))

    implementation("com.google.accompanist:accompanist-systemuicontroller:0.35.0-alpha")

    ksp("com.github.liujingxing.rxhttp:rxhttp-compiler:3.0.3")

    // 初始化组件库的启动器
    implementation("androidx.startup:startup-runtime:1.1.1")

    // 防止不必要的异常 crash
    implementation("com.github.SJJ-dot:Cockroach:2.0.1")
    implementation("me.weishu:free_reflection:3.0.1")

    // bugly
    implementation("com.tencent.bugly:crashreport:4.1.9.3")

    // curl
    implementation("com.github.mrmike:ok2curl:0.8.0")

    // 路由
    kapt("com.alibaba:arouter-compiler:1.5.2")

//    ksp("io.github.raamcosta.compose-destinations:ksp:2.0.0")
}

用于配置最新的Android studio项目的版本参考,版本号很重要。填的不对很容易编译失败。

其中重点的配置参数为:

复制代码
  ndk {
            abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64")
        }

        chaquopy {
            defaultConfig {
                buildPython("D:\\anaconda3\\envs\\face_re\\python.exe")

                pip {
                    options("--extra-index-url", "http://pypi.mirrors.ustc.edu.cn/simple/")
                    options("--trusted-host", "pypi.mirrors.ustc.edu.cn")
                    install("opencv-python==4.5.1.48")
                    install("dlib==19.19.0")
                    install("opencv_contrib_python==4.5.1.48")
                    install("deepface==0.0.74")
                    install("tensorflow==2.1.0")
                    install("protobuf==3.20.0")
                    install("ffmpeg-python")
                }
            }

        }
相关推荐
风吹夏回4 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
小熊Coding5 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋95 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本5 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
Meteors.5 小时前
安卓源码阅读——01.grade设置binding为true时,xml如何进行映射
android·xml
田里的水稻6 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人
_李小白6 小时前
【android opencv学习笔记】Day 26: 滤波算法之低通滤波与图像缩放插值
android·opencv·学习
jiayong236 小时前
02 创建虚拟环境
python
NiceCloud喜云6 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书