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

        }
相关推荐
ModestCoder_33 分钟前
将一个新的机器人模型导入最新版isaacLab进行训练(以unitree H1_2为例)
android·java·机器人
带娃的IT创业者1 小时前
《Python实战进阶》No39:模型部署——TensorFlow Serving 与 ONNX
pytorch·python·tensorflow·持续部署
Bruce-li__1 小时前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
九月镇灵将1 小时前
6.git项目实现变更拉取与上传
git·python·scrapy·scrapyd·gitpython·gerapy
robin_suli1 小时前
Spring事务的传播机制
android·java·spring
小张学Python2 小时前
AI数字人Heygem:口播与唇形同步的福音,无需docker,无需配置环境,一键整合包来了
python·数字人·heygem
跳跳糖炒酸奶2 小时前
第四章、Isaacsim在GUI中构建机器人(2):组装一个简单的机器人
人工智能·python·算法·ubuntu·机器人
鸿蒙布道师2 小时前
鸿蒙NEXT开发对象工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
步木木2 小时前
Anaconda和Pycharm的区别,以及如何选择两者
ide·python·pycharm
星始流年2 小时前
解决PyInstaller打包PySide6+QML应用的资源文件问题
python·llm·pyspider