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

        }
相关推荐
流水落花春去也7 分钟前
用yolov8 训练,最后形成训练好的文件。 并且能在后续项目使用
python
Serendipity_Carl8 分钟前
数据可视化实战之链家
python·数据可视化·数据清洗
消失的旧时光-194313 分钟前
从 C 链表到 Android Looper:MessageQueue 的底层原理一条线讲透
android·数据结构·链表
方白羽14 分钟前
Android 中Flags从源码到实践
android·app·客户端
深蓝电商API14 分钟前
从数据采集到商业变现:网络爬虫技术的实战与边界
android·爬虫
小裴(碎碎念版)33 分钟前
文件读写常用操作
开发语言·爬虫·python
TextIn智能文档云平台37 分钟前
图片转文字后怎么输入大模型处理
前端·人工智能·python
ujainu1 小时前
Python学习第一天:保留字和标识符
python·学习·标识符·保留字
studytosky1 小时前
深度学习理论与实战:反向传播、参数初始化与优化算法全解析
人工智能·python·深度学习·算法·分类·matplotlib
清水白石0082 小时前
《Python × 数据库:用 SQLAlchemy 解锁高效 ORM 编程的艺术》
开发语言·python·json