gpt4 book ai didi

java - 在Gradle中,在Android上,Storm注释处理器可以像AndroidAnnotations处理器一样运行吗?

转载 作者:行者123 更新时间:2023-12-01 04:13:26 30 4
gpt4 key购买 nike

我已经能够使用 gradle(以及 Dagger)成功运行 AndroidAnnotations,但是一旦我尝试将storm-apt 添加到生成器,gradle 就会默默失败,跳过所有注释处理。

这里是一个示例 build.gradle,它可以在没有包含storm-apt jar 的行的情况下工作(即运行aa apt 处理器,但不能运行storm apt 处理器),但会失败(即无法运行aa apt 处理器,以及 Storm apt 处理器):

import groovy.io.FileType

apply plugin: 'android'

android {
compileSdkVersion 18
buildToolsVersion "18.1.1"

defaultConfig {
minSdkVersion 11
targetSdkVersion 18
}

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}

repositories {
mavenCentral()
}

ext.androidAnnotationsVersion = '2.7.1'
configurations {
apt
}

dependencies {
apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}"
// commenting out the following line will allow the aa apt processor to complete,
// while leaving it uncommented will cause all annotation processing,
// both aa and storm to silently fail
apt files('libs/storm-apt-0.97.jar')

compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}"
compile files('libs/storm-api-0.97.jar')
}

afterEvaluate { project ->
android.applicationVariants.each { variant ->

variant.javaCompile.doFirst {
println "*** compile doFirst ${variant.name}"
ext.aptOutput = file("${project.buildDir}/source/r/${variant.dirName}")
aptOutput.mkdirs()

aptOutput.eachFileRecurse FileType.FILES, {
if (it.name.equals('R.java')) {
return
}
it.delete()
}

variant.javaCompile.options.compilerArgs += [
'-processorpath', configurations.apt.getAsPath(),
'-s', aptOutput
]

println "*** ${variant.javaCompile.options.compilerArgs}"
}
}
}

最佳答案

我不确定该代码中出现了什么问题,但现在有一个更好的解决方案,称为 android-apt ,这是一个gradle插件。

关于java - 在Gradle中,在Android上,Storm注释处理器可以像AndroidAnnotations处理器一样运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672862/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com