Articles of gradle

运行AspectJ会导致NoSuchMethodError:Aspect.aspectOf

我有一个非常简单的AspectJ方面(使用@AspectJ),只是打印出一条日志消息。 我的目标是在我的Android应用程序通知代码。 现在这个方面工作得很好,只要我的应用程序源代码中有方面类本身。 一旦我将该方面移动到不同的模块(java-> .jar或android lib – > .aar),在运行我的应用程序中的代码时,出现以下运行时exception : java.lang.NoSuchMethodError: com.xxx.xxx.TraceAspect.aspectOf 基本上我的结构是这样的: Root + app (com.android.application) – MainActivity (with annotation to be adviced) + library (android-library) – TraceAspect (aspect definition) 从ajc编译器,我可以看到,ajc编译器拿起我的类,并build议他们正确的,所以我真的不知道为什么它工作,只要我在我的源代码中的@AspectJ类,但一旦我移动停止工作它到一个jar文件。 我正在使用gradle。 Buildscript为我的应用程序是非常简单的。 我遵循http://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/中的说明 import com.android.build.gradle.LibraryPlugin import org.aspectj.bridge.IMessage import org.aspectj.bridge.MessageHandler import org.aspectj.tools.ajc.Main buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' classpath 'org.aspectj:aspectjtools:1.8.1' […]

摇篮。 如何在android应用程序编译之前生成源代码

在我的android应用程序中,我需要生成源代码并在应用程序中使用它。 为此,我为源代码创build了任务genSources (使用教程)。 如果单独运行它可以正常工作。 在我的情况下,我需要自动运行源代码生成。 从教程中,我发现了以下命令: compileJava.dependsOn(genSources) 但这是未知的命令 应用插件:'com.android.library' gradle抛出以下exception: Error:(35, 0) Could not find property 'compileJava' on project ':data'. 看起来像它可以与应用程序插件一起使用:'Java' 但我不能一起使用这两个插件 如何在编译之前解决这个问题并生成所需的源代码? 的build.gradle apply plugin: 'com.android.library' configurations {pmd} android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' […]

Gradle Android:如何在不使用–info的情况下显示testing结果

我正在运行使用Gradle安卓插件的Androidtesting,并希望看到单独的testing结果。 从这个问题的答案Gradle:如何在控制台上实时显示testing结果? 看来我可以使用–info (打印很多其他冗长的垃圾,我不在乎)或使用此封闭只适用于Java插件(而不是Android插件) test { afterTest { desc, result -> println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}" } } 当我运行connectedCheck任务时,是否还有一些其他的选项/闭包可以用来打印单个testing结果,而没有其他的“冗长”。

如何从源代码构buildv4支持库

我试图从源sice构buildv4支持库我修改了一部分库。 我试图在Ubuntu 13.10上用gradle来做这个。 我按照这个答案的指示,但现在我卡住了。 我使用Gradle 1.10与Ubuntu的,因为当我试图在Windows上build立它,它说,Windows不支持和Ubuntu的Gradle 2.4它说gradle 1.10是支持的版本。 当我尝试build设 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二进制文件的path添加到了我的path中,就像BuildToolInfo.java中的注释一样,并且还build-tools, tools, and platform-tools的path,我相信我使用android sdk经理。 我确认path是在重新启动后使用printenv命令添加的。 我究竟做错了什么?

如何使用artifactoryPublish发布发布和debugging工件

我有Android Studio项目,在发行版和debugging版本中构buildAAR或APK。 我想在Artifactory服务器上将这些发布到不同的存储库。 JFrog的例子似乎没有涵盖这种情况。 这是否意味着最好的做法是仅仅构build版本或者只是构builddebugging版本,然后根据构build的typesselect要上传的内容和上传的位置?

annotationProcessor + androidTest + dagger2

对于检测testing,我有一个TestApplication创build一个TestComponent ,但该文件不再生成( Error:/xxx/TestApplication.java:16: The import.xxx.DaggerTestApplicationComponent cannot be resolved )。 我无法找出根本原因。 我已经尝试了不同的Android Studio(2.2,2.1.2),不同的gradle插件(2.2.0-alpha6,5,4)和不同版本的匕首(2.2到2.6)。 我应该使用androidTestAnnotationProcessor ? (事情并非如此) 编辑:使用匕首2.6,需要添加classpath 'com.google.guava:guava:19.0' 更新: Module出现问题,因此无法创buildComponent 。 但是,使用插孔(即使有debugging选项),我看不到问题。 现在,回到java 7,gradle插件2.1.2。 这样,不需要指定哪个番石榴版本,所有最新的库都可以使用(匕首2.6,butterknife 8.2.1,apt 1.8)

Android Studio 3 + Gradle 4.0 + shrinkResources + libraryProject =无法在项目中find匹配的configuration

我有问题将我的项目迁移到最新的Gradle 4.0 + Android Studio 3版本,这给我所有的错误。 我一点一点地把这些东西全部排除在外。 Could not resolve all dependencies for configuration ':app:forGoogleCoverageRuntimeClasspath'. > Unable to find a matching configuration in project :mylibrary: – Configuration 'debugApiElements': – Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'. – Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=coverage}' and found incompatible value 'BuildTypeAttr{name=debug}'. – Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=debug}' but wasn't required. – Required […]

Android Studio 3.0:在Gradle文件中找不到buildToolsVersion

我最近安装了Android Studio(v3.0)的新稳定版本。 然后创build一个新的项目,没有任何问题。 但是看到应用程序级build.gradle文件中没有buildToolsVersion字段。 即使我search了所有项目文件( Ctrl Shift F ),但没有find任何东西! 这是什么意思? 我怎样才能确定什么是我的应用程序模块中的生成工具的版本? build.gradle(Project): // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files […]

Gradle中基于构build变体的不同drawable

我在我的gradle文件中有两个口味:flavor1和flavor2。 与构buildtypes一起,它们创build以下构build变体: flavor1-debug flavor1-release flavor2-debug flavor2-debug 假设我想为每个变体有一个不同的drawable,我应该把它放在哪里? 我的文件夹结构是 src |__ main |__ flavor1 |__ flavor2 |__ debug |__ release 我知道,据此 所有资源(Android资源和资产)都使用覆盖优先级,其中构buildtypes覆盖产品风味,覆盖主源代码集。 这意味着如果我把它放在Build Type文件夹中,那么debugging变体将具有相同的debugging可绘制,并且发布变体将具有相同的可释放drawable。 我想我可以从一开始就创build更具体的口味,比如flavor1release,flavor1debug,flavor2release,flavor2debug,但是我最终会得到8个变体。 根据这一点 ,我可能不会构build一些构buildtypes,但这似乎不是很干净。

奇怪的Gradle错误

当我升级到8.2时,我的Gradle随机停止工作。 我以前一直在使用8.1,运行良好。 我注意到这是一个gradle问题,因为它不会引起一个LogCat。 这是gradle apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '20.0.0' defaultConfig { applicationId 'com.Hype.Hype' minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName '1.0' } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/java/Location/'] } } productFlavors { } } dependencies { compile fileTree(dir: […]