问题标签 [android-gradle-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
38396 浏览

android - 如何在不公开源代码的情况下使用 gradle 创建 Android Library Jar?

我想从一个 Android 库项目中创建一个 Jar。它的设置方式如下:

我希望将所有这些都打包在一个 Jar 中,但不透露PackageSDK.java.

我像这样设置我的build.gradle文件:

当我gradlew clean jar在项目目录中运行时,会在ProjectName\build\libs名为ProjectName.jar. 它的结构如下:

我希望在执行任务时PackageSDK.class包含编译的而不是文件。我可以改变什么来实现这一目标?PackageSDK.javajar

编辑:

根据 Ben Manes 的建议,我将配置更改为sourceSets以下内容:

jar任务如下:

Gradle 现在给我这个输出:

Could not find method output() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure9_closure10_closure13@138532dc] on source set main.

0 投票
1 回答
1892 浏览

android - 在 Android Studio 和 Gradle 中使用模块依赖项

我正在尝试从 Eclipse 切换到 Android Studio 来构建和编写我的应用程序,但我发现如何使用 android 模块作为依赖项(如 ActionBarSherlock 或 AndEngine)并不明显。

使用 Eclipse 很容易实现,但我不知道如何使用 Android Studio 做到这一点。我设法将 AndEngine 和我的项目都导入到 Android Studio,但我无法编译它。

这就是我的目录结构的样子:

使用 Ecipe,依赖项是通过工作区或 project.properties 配置的,我的问题是,如何使用 AndroidStudio 和 gradle 来实现它?

0 投票
0 回答
145 浏览

android - 谷歌地图“setOnLocationEnabled”在 Android 2.3.7 上崩溃——自从更改为 Gradle

我在 Android Studio 中有一个显示地图的项目。一切正常(包括地图),直到我尝试调用mMap_.setMyLocationEnabled(true);. 它产生以下错误:

找不到资源……很奇怪。相同的代码现在可以在 ANDROID 4 中使用。如果我删除冲突的调用,它在 2.x 中也可以顺利运行。所以,这不是 API 密钥的问题,库是如何包含的,SDK 或编辑器不是最新的......

在我将“旧”的 android studio 项目迁移到 Gradle 系统后,问题出现了。在切换之前,我使用的是位于的 .jar 文件<android sdk>\extras\google\google_play_services\libproject\google-play-services_lib\libs,但现在它是从 build.gradle 文件中的规范自动下载/导入的:

有没有人有同样的问题?你有什么建议吗?我没有想法了...

0 投票
1 回答
3379 浏览

android - 如何使 runProguard 为 android-library Gradle 插件工作?

我想在我的 Android 库的发布版本上运行 ProGuard。以下是我build.gradle的项目中的文件。

运行gradlew cleangradlew build返回以下错误:

> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project

插件似乎android-library缺少该buildTypes方法。如果我更改apply pluginandroidgradlew则运行成功。但是,这是一个图书馆项目,我想保留它。我的其他部分gradle.build(此处未提及)依赖于作为库的项目。

有什么方法可以让android-library插件在构建时运行 ProGuard?

0 投票
1 回答
3239 浏览

android - 如果仅包含在 build.gradle 中,为什么 Android Studio 不能引用库?

在我的应用程序中,我使用的是 Guava 库。我只在我的build.gradle文件中引用了它,如下所示:

我的应用程序重建并运行良好。但是,当我尝试从 Guava 库中添加新内容时,编译器会抱怨它找不到该类。

例如:当我写

在我的新文件中,编译器说'cannot resolve symbol common'.

但是我的旧文件重建得很好。怎么会这样?我必须惹Project|Structure吗?我特别想列出所有依赖项 -only- in build.gradle

0 投票
1 回答
3703 浏览

android - Android Gradle 插件中的 aaptOptions - noCompress

我正在使用 0.6.1 版的 Gradle 插件,当我告诉它不要压缩时,aaptOptions 似乎被忽略了。我们预压缩所有 PNG 以加快构建过程(在我们构建的服务器上大约需要 10 分钟/构建),所以我将以下代码添加到 build.gradle 只是为了让 png 仍在通过压缩运行。

0 投票
3 回答
417 浏览

gradle - GroovyConsole 运行 build.gradle

GradleWare 的书 -使用 Gradle 构建和测试- 在第 1.1 节中陈述了以下内容: “每个 Gradle 构建文件都是可执行的 Groovy 脚本。”

但是,当我在 GroovyConsole 中运行 build.gradle 文件时,它给了我这个错误:

groovy.lang.MissingMethodException:没有方法签名:build.apply() 适用于参数类型:(java.util.LinkedHashMap) 值:[[plugin:android-library]] 可能的解决方案:any()、any(groovy .lang.Closure)、every()、every(groovy.lang.Closure)、split(groovy.lang.Closure) 在 build.run(build.gradle:1)

它指的是第1行:

在构建脚本中:

所以你能澄清一下这本书的说法是对是错吗?

谢谢你,伊戈尔·加纳波尔斯基

0 投票
7 回答
61167 浏览

android - 如何将日期构建附加到 gradle 上的 versionNameSuffix

我正在使用 Android Studio,我需要versionNameSuffix在我的 Android build.gradle文件上附加一个后缀。我有三种不同的构建类型,我只需要将日期时间附加到我的“测试版”版本中。我的实际文件是:

对于测试和自动部署,我需要得到一个最终的 versionName,比如:0.7.5-beta-build201310040.7.5-beta-build1380855996或者类似的东西。有任何想法吗?

0 投票
2 回答
2876 浏览

android - 如何在 Eclipse 中包含 Android gradle 依赖项

我创建了简单的 android eclipse 项目。然后我添加了 build.gradle 文件。

如您所见,我想使用来自 maven 的 RoboGuice。Gradle 会下载它,但不会添加到 Eclipse 的 lib 文件夹中。所以我在编写代码时不能在eclipse中使用它。我需要手动复制它们吗?我添加了一个任务来显示它们:

0 投票
1 回答
361 浏览

android - 将 custom_rules.xml(Eclipse、Ant)迁移到 Android Studio

我的 custom_rules.xml 文件有一个自定义目标,比如说我的目标。目标 -pre-build 取决于我的目标。my-target 生成一个属性文件并将其放入 assets 目录。

我正在将我的项目从 Eclipse 迁移到 Android Studio,并希望保留此功能。似乎生成的文件应该放在 MyAppProject/MyApp/build/assets/[debug|release] 文件夹中。用于此目的的最佳 Gradle 任务是什么?

谢谢!