如何在Android Gradle中包含git模块?

3wabscal  于 2023-06-23  发布在  Android
关注(0)|答案(1)|浏览(127)

我有一个自定义版本的依赖项(OkHttp),我想包含在Android Gradle项目中。它托管在GitHub上的https://github.com/cloewen8/okhttp-ntrip/tree/agra-gps。现在我想把它包含在一个Android项目中。
我找到了几种方法来解决这个问题。使用jitpack,使用git子模块或使用Gradle源依赖的子项目。Jitpack无法编译它(),并且使用子模块会导致更多的问题。
我目前的方法是依赖源代码。但是当它构建时,我得到错误No variants found for ':app'. Check build files to ensure at least one variant exists.这是一个标准的Android项目结构,我已经安装了正确的SDK,应用程序将在build.gradle中没有这个依赖关系。我错过了什么?
在settings.gradle中:

import org.gradle.api.initialization.resolve.RepositoriesMode

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {
        google()
        mavenCentral()
    }
}
// The source of the dependency is added here
sourceControl {
    gitRepository("https://github.com/cloewen8/okhttp-ntrip.git") {
        producesModule("com.squareup.okhttp3:okhttp")
    }
}

rootProject.name = "AgraGPS"
include ':app'

在应用的build.gradle中(删除了不相关的部分):

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    compileSdk 33

    defaultConfig {
        applicationId "com.agragps.agragps"
        minSdk 21
        targetSdkVersion 33
        versionCode 3_000_000
        versionName "3.00.0"
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlin {
        jvmToolchain(17)
    }
    namespace 'com.agragps.agragps'
    buildToolsVersion '33.0.0'
}

dependencies {
    implementation(platform("com.squareup.okhttp3:okhttp-bom:4.10.0"))
    // This is the dependency that causes the build error
    implementation('com.squareup.okhttp3:okhttp') {
        version {
            branch = 'agra-gps'
        }
    }
}
toe95027

toe950271#

1.在Android Studio中打开项目。
2.在Project视图中,找到settings.gradle文件并将其打开。
3.在settings.gradle文件中,添加以下行以包含Git模块:

include ':module_name'
project(':module_name').projectDir = new File('relative_path_to_module')

将module_name替换为所需的模块名称,将relative_path_to_module替换为Git模块目录的相对路径。
4.保存settings.gradle文件。
5.打开应用的build.gradle文件(通常位于应用模块中)。
6.在dependencies块中,添加以下行以包含Git模块作为依赖项:

implementation project(':module_name')

将module_name替换为您在步骤3中指定的名称。
7.通过点击工具栏中的“立即同步”按钮,或从菜单中选择“文件”>“将项目与Gradle文件同步”,将项目与Gradle文件同步。
完成这些步骤后,您的Git模块将作为依赖项包含在Android Gradle项目中。然后,您可以根据需要在应用中使用Git模块中的类和资源。

相关问题