gpt4 book ai didi

java - 具有两个 Android 应用程序模块的 Gradle 项目

转载 作者:行者123 更新时间:2023-11-29 20:56:30 25 4
gpt4 key购买 nike

我正在尝试在单个 gradle 项目中配置两个 android 应用程序模块。

  • 应用
  • 工具

应用程序应该完全不知道工具,而工具应该能够访问应用程序的所有类和资源。

想法是将应用程序作为一个 android 应用程序,并将工具作为另一个“扩展”应用程序的 android 应用程序。

重点是App的代码不能动,gradle文件也不行。

到目前为止我尝试了什么:

我根据app定义了tools,tool的build.gradle就是这个:

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "20.0.0"

defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile project(':app')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
}

在工具 list 中,我试图启动应用程序的 Activity ,但是当我运行工具时,结果是这样的:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tools/com.example.app.activities.WannaRunActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.app.activities.WannaRunActivity" on path: DexPathList[[zip file "/data/app/com.example.tools.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.tools, /system/lib]]

你会怎么做?

最佳答案

似乎是 ProductFlavors[1] 的情况。

src/main 下具有所有“应用”功能的单个应用程序模块,并为工具添加新的产品风格 - src/tools

然后通过构建“工具”风格,您可以访问“应用”中的功能,同时添加“工具”的功能。

productFlavors {
tools {
packageName "com.example.tools"
}
}

sourceSets {
tools.java.srcDirs = ['src/tools/java']
tools.resources.srcDirs = ['src/tools/resources']
}

工具构建运行时,工具源代码将添加到“app”代码中。如果需要,您还可以覆盖 src/main 下的代码。

[1] android gradle 文档 - http://tools.android.com/tech-docs/new-build-system/user-guide

[2] 构建变体文档 - http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants

关于java - 具有两个 Android 应用程序模块的 Gradle 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com