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")
                }
            }

        }
相关推荐
第九序言T6 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路6 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003966 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_6 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
quantdash_cc7 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
I Am a robert girl7 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋
python·多智能体系统·多智能体协作·llm agent·涌现式合谋·对齐问题·激励机制设计
云和数据.ChenGuang8 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
专注仿真8 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
wflynn9 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
2601_9679801110 小时前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包