Articles of gradle

Android Studio:如何在产品风格中排除google-services模块?

在我的Android项目中,有几种产品风格: buildTypes { release {} debug {} staging {} } productFlavors { freeVersion {} proVersion {} partnerVersion {} } 另外,我使用Google Analytics: apply plugin: ‘com.google.gms.google-services’ dependencies { compile ‘com.google.android.gms:play-services-analytics:8.4.0’ } 如何在其中一个中排除google-services? 例如,在: freeVersion {}

Gradle上传android应用程序apk到maven repo(nexus)

我正在尝试创建一个CI构建,构建一个Android应用程序的发布版本,并将生成的apk上传到maven sonatype nexus repo。 当我运行assembleRelease时,apk生成,签名,运行proguard,位于build / outputs / apk / app-release.apk 为了上传到nexus,我使用了这个gradle插件: https : //github.com/chrisbanes/gradle-mvn-push有一点不同,我使用了POM_PACKAGING = apk 我运行:gradle uploadArchives并且它工作正常,它确实将apk上传到nexus,但它与build / outputs / apk / app-release.apk(不同的创建日期)中的文件不同。 意思是它要么做任何assembleRelease,要么只是归档源,但是错过了Android应用程序所需的一些必要操作。 gradle插件定义了这些artificats: artifacts { archives androidSourcesJar archives androidJavadocsJar } 也许我应该添加一个文件工件来构建/输出/ apk / app-release.apk?

gradle-android-scala-plugin给出“找不到匹配的构造函数”错误

将此示例代码导入Android Studio会出现此错误: 错误:(17,0)无法find匹配的构造函数:org.gradle.api.internal.tasks.DefaultScalaSourceSet(java.lang.String,org.gradle.api.internal.file.BaseDirFileResolver) 的build.gradle: buildscript { repositories { mavenCentral() } dependencies { classpath “com.android.tools.build:gradle:2.0.0” classpath “jp.leafytree.gradle:gradle-android-scala-plugin:1.4” } } repositories { jcenter() } apply plugin: “com.android.application” android{ compileSdkVersion “android-23” buildToolsVersion “23.0.1” } apply plugin: “jp.leafytree.android-scala” android { defaultConfig { targetSdkVersion 23 testInstrumentationRunner “com.android.test.runner.MultiDexTestRunner” versionCode 1 versionName “1.0” multiDexEnabled true } productFlavors { dev { minSdkVersion 21 […]

“支持的最小Gradle版本为4.4”错误今天开始; 没有代码更改

今天,我的团队中的多个开发人员在尝试运行任何Gradle任务时都开始看到此错误。 * Where: Build file ‘C:\dev\src\my_app_name\app\build.gradle’ line: 1 * What went wrong: A problem occurred evaluating project ‘:app’. > Failed to apply plugin [id ‘com.android.application’] > Minimum supported Gradle version is 4.4. Current version is 4.1. If using the gradle wrapper, try editing the distributionUrl in C:\dev\src\my_app_name\gradle\wrapper\gradle-wrapper.properties to gradle-4.4-all.zip 绝对没有进行任何代码或配置更改; Gradle构建突然开始失败。 有人知道为什么会这样吗? 我最好的猜测是依赖于特定版本的Gradle的插件会自动更新,但我不知道如何确定它是哪一个。 行号表明它是com.application.plugin插件本身。 我知道Android […]

Gradle NDK在生成的Android.mk中指定’include’指令

当你有 android { defaultConfig { ndk { moduleName “yourlib” stl “stlport_static” ldLibs “log”, “z”, “m” cFlags “-I/some/include/dir/” } … } … } 在build.gradle中,然后Gradle将编译src / main / jni /中的文件,它将在build / ndk / debug / Android.mk中生成一个Android.mk。 但是,就我而言,我正在尝试编译一些针对OpenCV编译的C ++文件。 当我手动创建Android.mk文件并运行ndk-build命令时,我有这个工作。 但我想通过Gradle / Android Studio自动完成。 手动执行此操作时,我将包含要链接的库。 我这样做,在手动创建的Android.mk中,使用以下行: include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk 但是,在Android的Gradle插件中,我不确定如何在生成的Android.mk文件中添加此“include”指令。 任何人都可以指向我正确的Gradle指令方向将此行添加到生成文件中吗? 谢谢。

Android Studio gradle插件如何管理资源文件(AndroidManifest.xml)?

我的项目的build.gradle位于myApp/app/目录中。 AndroidManifest.xml位于myApp/app/src/main目录中,与java/和res/目录处于同一级别。 同步项目时,我收到有关缺少清单文件的通知。 难怪,实际上,当路径真的不对时。 源文件设置为: sourceSets { main { manifest.srcFile ‘src/main/AndroidManifest.xml’ } } 并且错误通知说: Error:Cause: java.io.FileNotFoundException: /home/aqv/AndroidStudioProjects/myApp/src/main/AndroidManifest.xml (No such file or directory) 当我将源更改为: sourceSets { main { manifest.srcFile ‘main/AndroidManifest.xml’ } } 文字变为: Error:Cause: java.io.FileNotFoundException: /home/aqv/AndroidStudioProjects/myApp/app/main/AndroidManifest.xml (No such file or directory) 正如您所看到的,缺少路径片段: myApp/app/src/ (当设置src/main/AndroidManifest.xml路径时,错误说明了在myApp/src/main查找清单文件,因此它省略了app/目录)。 这是一种gradle的错误还是我的项目配置错误? 寻找解决方案我在SOfind了一个线程,但那里的解决方案在我的情况下不起作用。 我将依赖项设置为: compile ‘com.android.support:support-v4:19.1.0’ compile ‘com.android.support:appcompat-v7:19.1.0’

Android Studio无法在任务’:project:dexDebug’上调用IncrementalTask​​.taskAction()

我最近决定从Eclipse切换到Android Studio。 我导入了一个我正在处理的项目,当我尝试运行项目时,我现在收到此错误。 Gradle: Execution failed for task ‘:project:dexDebug’. > Could not call IncrementalTask.taskAction() on task ‘:project:dexDebug’ 我已经在这个网站巡航了2天,尝试不同的建议无济于事。 我确实运行了gradlew compileDebug –stacktrace,这就是我得到的: C:\Users\adam\AndroidStudioProjects\projectProject>gradlew compileDebug –stacktrace Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0 :project:preBuild UP-TO-DATE :project:preDebugBuild UP-TO-DATE :project:preReleaseBuild UP-TO-DATE :project:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE […]

带Gradle的Android(Java以非零退出值2完成)

这是我的.gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.test.test” minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } packagingOptions { exclude ‘META-INF/license.txt’ exclude ‘META-INF/LICENSE’ exclude ‘META-INF/notice.txt’ exclude ‘META-INF/NOTICE’ } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:21.0.3’ […]

‘flavorDimension’将被Android Gradle Plugin 2.0删除,它已被’dimension’取代

从com.android.tools.build:gradle:1.3.0你将得到’flavorDimension’ will be removed by Android Gradle Plugin 2.0, it has been replaced by ‘dimension’. 这是我的构建文件: 的build.gradle android { flavorDimensions “store”, “api” productFlavors { googleplay { flavorDimension “store” } amazon { flavorDimension “store” } pre21 { flavorDimension “api” } post21 { flavorDimension “api” } } }

如何从源代码构建v4支持库

我正在尝试从源sice构建v4支持库,我修改了库的一部分。 我正在尝试使用gradle在ubuntu 13.10上执行此操作。 我按照这个答案的说明,但现在我被卡住了。 我使用gradle 1.10和ubuntu,因为当我尝试在windows上构建它时,它表示不支持windows,并且在带有gradle 2.4的ubuntu上它表示gradle 1.10是支持的版本。 当我尝试建设时 gradle clean jar –stacktrace 我一直得到一个IllegalStateException:llvm-rs-cc丢失,这是我一直得到的堆栈跟踪的一部分 Caused by: java.lang.IllegalStateException: llvm-rs-cc is missing at com.android.builder.AndroidBuilder.compileAllRenderscriptFiles(AndroidBuilder.java:1281) at com.android.builder.AndroidBuilder$compileAllRenderscriptFiles.call(Unknown Source) at com.android.build.gradle.tasks.RenderscriptCompile.taskAction(RenderscriptCompile.groovy:99) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 整个堆栈跟踪就在这里 我尝试在AndroidBuilder.java中查看源代码并且没有任何消息。 我甚至尝试将android-sdk-linux/build-tools llvm-rs-cc文件复制到尽可能多的文件夹中。 我已经将llvm-rs-cc二进制文件的路径添加到我的路径中,就像BuildToolInfo.java中的注释一样,以及build-tools, tools, and platform-tools的路径,我相信我使用android sdk下载了经理。 我确认重启后使用printenv命令添加了路径。 我究竟做错了什么?