Articles of gradle

ADT Eclipse + Gradle:不完整的BuildConfig.java

我正在使用Android Developer Tools 22,Eclipse Indigo和当前的Gradle Plugin for Eclipse。 现在我想通过在build.gradle文件中定义来使用不同的Flavors: productFlavors{ A { packageName “com.test.A” buildConfig “public final static String FLAVOR = \”A\”;” } B { packageName “com.test.B” buildConfig “public final static String FLAVOR = \”B\”;” } } 据我所知,我可以使用BuildConfig.FLAVOR访问这些variables,但在gen文件夹中生成的BuildConfig.java中缺少FLAVOR的定义。 如果我通过Gradle组装我的项目,则在文件夹build / source / buildConfig / [A | B] / [debug | release] / com / test […]

如何发送具有远程依赖项(gradle)的Android库(aar)?

我正在尝试使用具有远程依赖关系的gradle构建aar文件。 下面是一个示例构建脚本。 如你所见,我有两个依赖项。 我遇到的问题是当我发布时,aar文件不包含远程依赖项,所以当我在其他项目中包含aar文件时,我得到NoClassDefFound错误。 我发现如果我将jar从我当地的maven repo复制到我项目中的libs文件夹,那么jar确实会包含在发布版中。 如何在aar文件中包含远程依赖项? 我还在其他地方读过,这样运送依赖关系是不好的做法,所以如果有更好的方法来做我想做的事情,我就是为了它。 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.9.+’ } } apply plugin: ‘android-library’ repositories { mavenCentral() mavenLocal() } android { … omitted for brevity } dependencies { compile ‘com.somepackage:someartifact:1.0’ compile ‘com.anotherpackage:artifact:2.0’ }

使用本地Maven仓库时未显示Javadoc

我在下面发布了一个带有build.gradle的工件: uploadArchives { 存储库{ mavenDeployer { repository(url:“file:// maven”) pom.groupId =’com.totvnow’ pom.artifactId =’tonedetect-lib’ pom.version =’0.1.0′ } } } task androidJavadocs(type:Javadoc){ source = android.sourceSets.main.java.srcDirs classpath + = project.files(android.getBootClasspath()。join(File.pathSeparator)) } task androidJavadocsJar(types:Jar,dependsOn:androidJavadocs){ classifier =’javadoc’ 来自androidJavadocs.destinationDir } 工件{ 存档androidJavadocsJar } 我成功地在repo目录中获取了javadoc文件: tonedetect-LIB-0.1.0-javadoc.jar tonedetect-LIB-0.1.0-javadoc.jar.md5 tonedetect-LIB-0.1.0-javadoc.jar.sha1 但是当我在另一个模块的build.gradle中使用它时: buildscript { 存储库{ jcenter() maven {url’somepath \\ maven’} } 依赖{ classpath’com.android.tools.build:grad:1.2.3′ } } allprojects […]

Android Studio – 错误:程序types已存在

当我尝试编译代码时,Android Studio 3.0.1上会出现以下错误 Error:Program type already present: com.squareup.picasso.Action$RequestWeakReference 我的gradle代码: … compile ‘com.android.support:appcompat-v7:26.1.0’ compile ‘com.android.support:design:26.1.0’ compile ‘com.android.support:support-v4:26.1.0’ compile ‘com.android.support:support-vector-drawable:26.1.0’ compile ‘com.android.support.constraint:constraint-layout:1.1.0-beta4’ compile ‘com.google.firebase:firebase-messaging:11.8.0’ compile ‘com.google.firebase:firebase-ads:11.8.0’ compile ‘com.google.gms:google-services:3.1.0’ compile ‘com.google.android.gms:play-services:11.8.0’ compile ‘com.squareup.picasso:picasso:2.5.2’ testCompile ‘junit:junit:4.12’ } apply plugin: ‘com.google.gms.google-services’ 如何修复我的gradle脚本以修复错误?

构建一个Android应用程序,其targetSdkVersion为25,minSdkVersion为19

我有一个Android应用程序,其targetSdkVersion为25 。 它在API 21+上运行良好,但是,我正在尝试修复它以在API 19+ (KitKat)上运行。 我的应用程序确实使用了Material Design,我知道它是在API 21中引入的,但是我在这里看到应该有办法支持移植它。 但是,当我构建并运行时,我收到错误: Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebug’. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: javax/activation/MimeTypeParseException.class 当我在KitKat模拟器上运行时。 有没有人在尝试反向测试他们的应用程序之前看到此错误? 我的gradle文件有: compile ‘com.android.support:appcompat-v7:25.0.0’ compile ‘com.android.support:design:25.0.0’ compile ‘com.android.support:multidex:1.0.1’ compile ‘com.android.support:percent:25.0.0’ compile ‘com.android.support:palette-v7:25.0.0’ compile ‘org.jetbrains:annotations-java5:15.0’ compile ‘com.android.support:support-v4:25.0.0’ compile ‘com.android.support:support-v13:25.0.0’ 我可以提供哪些附加信息来帮助调试? 更新完整的gradle代码: buildscript { repositories { maven { url ‘https://maven.fabric.io/public’ } } dependencies { classpath […]

在IntelliJ IDEA中创建基于Gradle的新项目

标题基本概括了所有内容。 我想在IntelliJ IDEA(13 EAP)中创建一个基于Gradle的新项目,就像我在Android Studio中所做的那样。 我尝试在IntelliJ中创建一个新的Android项目,但它使用“旧”构建系统,而创建一个新的Gradle项目创建了一个根本没有Android集成的通用Java项目。 我能做什么?

在库清单中使用$ {applicationId}

我正在开发一个使用内部ContentProvider的SDK,我想在几个项目中使用这个SDK,并在库清单中声明它,所以我试过这个: 会发生什么是$ {applicationId}被替换为库的packageName而不是顶部的apk相关的applicationId … 有没有办法确保启动 applicationId将被置于android:authority值?

无法在Android Studio 2.0预览版中启动该应用

我的朋友是 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() maven { url ‘https://maven.fabric.io/public’ } } dependencies { classpath ‘com.android.tools.build:gradle:2.0.0-alpha1’ classpath ‘com.jakewharton.hugo:hugo-plugin:1.2.1’ } } allprojects { repositories { mavenCentral() jcenter() maven { url ‘https://maven.fabric.io/public’ } maven { url ‘http://dl.bintray.com/amulyakhare/maven’ } } } app gradle是 buildscript […]

使用gradle的Android仅测试权限

我运行./gradlew connectedAndroidTest ,我需要我的测试APK才能拥有一个不应该在任何非测试APK(调试,发布)的权限。 我已经创建了一个允许的清单: 然后我将此清单复制到src/androidTest目录,因为gradle android插件的发布说明提示: 0.13.0(2014/09/18)需要Gradle 2.1现在可以为测试应用程序提供清单(src / androidTest / AndroidManifest.xml) 但是,在我的连接测试期间不会应用权限。 如果我创建一个src/debug目录并在那里移动该清单 – 在连接测试期间正确应用权限(但在常规调试版本中也是如此,这是不可取的)。 我做错了什么或有错误吗?

在不一致的位置观察到包ID“build-tools; 20.0.0”

./gradlew –parallel :app:assembleDebugTest 当我在android studio终端上运行命令时出现此错误。 错误并行执行是一个孵化function。 在不一致的位置’sdk / build-tools / android-4.4W’中观察到包id’build-tools; 20.0.0’(预期’sdk / build-tools / 20.0.0’) Gradle文件应用插件:’com.android.application’ android { compileSdkVersion 22 buildToolsVersion ‘23.0.2’ packagingOptions { exclude ‘LICENSE.txt’ } defaultConfig { applicationId “package” minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName “1.0” testApplicationId “package.test” testInstrumentationRunner “package.test.Instrumentation” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } […]