Articles of gradle

Android Studio和Gradle,@NotNull参数的参数0

我正在尝试使用Android Studio中的Gradle制作应用程序,但我得到的只是此错误消息: java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/android/tools/idea/jps/builder/AndroidGradleBuilder.createBuildTask must not be null: Argument 0 for @NotNull parameter of com/android/tools/idea/jps/builder/AndroidGradleBuilder.createBuildTask must not be null 我试过调试这个,实际上我无法弄清楚问题是什么。 有想法的人吗?

将Espresso与Proguard和Gradle集成

我正在使用的应用程序正在使用Gradle构建。 我正在尝试添加Espresso作为仪器测试的依赖项。 应用程序本身有一些依赖项,其中一个是Guava 15.0。 为了使这个工作,我使用具有显式依赖关系的Espresso版本,并排除捆绑的Guava(使用我自己的)。 dependencies { … instrumentTestCompile fileTree(dir: ‘libs/espresso-dependencies’, include: ‘*.jar’) compile ‘com.google.guava:guava:15.0’ … } 当我尝试使用gradle connectedInstrumentTest构建时,我得到与缺少方法和类相关的错误。 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState at com.google.android.apps.common.testing.ui.espresso.base.InputManagerEventInjectionStrategy.(InputManagerEventInjectionStrategy.java:35) 添加-keep class com.google.common.** { *; } 我的Proguard配置使一切正常。 似乎正在发生的事情是,Proguard只分析主应用程序使用的类,而不是寻找仪器测试依赖项的使用。 我的主应用程序未使用但仪器测试所需的方法/类似乎已经过优化。 如何使Proguard保留Espresso及其依赖项所需的Guava类/方法? 手动指定它们(有很多用法)似乎并不实际,并且保持所有这些都违背了Proguard的目的。

在Android Studio中更改布局后需要清理项目

当我在XML布局文件中更改小东西时,比如TextInputEditText maxLength ,我需要清理项目以让AS拾取更改。 res文件夹的结构是: 水库 – 布局 – drawables – …… 没有更多的子文件夹。 AS 3.1.1,Gradle 4.6。 我试图在gradle中添加它: sourceSets { main.res.srcDirs = [ ‘src/main/res/anim’, ‘src/main/res/color’, ‘src/main/res/drawable’, ‘src/main/res/drawable-hdpi’, ‘src/main/res/drawable-mdpi’, ‘src/main/res/drawable-xhdpi’, ‘src/main/res/drawable-xxhdpi’, ‘src/main/res/drawable-xxxhdpi’, ‘src/main/res/menu’, ‘src/main/res/mipmap-dpi’, ‘src/main/res/mipmap-hdpi’, ‘src/main/res/mipmap-mdpi’, ‘src/main/res/mipmap-xhdpi’, ‘src/main/res/mipmap-xxhdpi’, ‘src/main/res/mipmap-xxxhdpi’, ‘src/main/res/raw’, ‘src/main/res/values’, ‘src/main/res/values-land’, ‘src/main/res/values-large’, ‘src/main/res/values-v21’, ‘src/main/res/valuesw820dp’, ‘src/main/res/xml’, ‘src/main/res/layout’, ‘src/main/res’] } 有没有办法防止每次清理项目以使更改生效? 因此,每当我对XML文件进行更改并运行应用程序时,我都应该看到我的更改但是我必须每次都清理项目并且它变得很烦人。

ClassCastException:ApiVersionImpl无法强制转换为java.lang.Integer

我有android + gradle项目。 我尝试启动应用程序时出现以下exception: ‘ClassCastException: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer’ buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.12.1’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.+’ } } apply plugin: ‘android’ apply plugin: ‘android-apt’ repositories { mavenCentral() mavenLocal() } dependencies { compile files(‘libs/android-support-v4.jar’) compile ‘org.androidannotations:androidannotations-api:3.0.1’ apt ‘org.androidannotations:androidannotations:3.0.1’ } android { compileSdkVersion 15 […]

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项目。 我能做什么?