好吧,这可能是我曾经问过的最愚蠢的问题,但我真的需要知道为什么会这样。
我为android构建了自己的注释处理器。现在,这些是我对build.gradle的依赖:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
// Retrofit
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
// Butterknife dependencies
apt 'com.jakewharton:butterknife-compiler:8.0.1'
compile 'com.jakewharton:butterknife:8.0.1'
// Support libraries
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
// My annotation processor
apt 'co.aurasphere.revolver:revolver-compiler:0.0.1-SNAPSHOT'
compile 'co.aurasphere.revolver:revolver:0.0.1'
}
这个版本运行正常。调用注释处理器,我可以看到它正在运行。
现在,如果我改为:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
// Butterknife dependencies
apt 'com.jakewharton:butterknife-compiler:8.0.1'
compile 'com.jakewharton:butterknife:8.0.1'
// Support libraries
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
// Retrofit
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
// My annotation processor
apt 'co.aurasphere.revolver:revolver-compiler:0.0.1-SNAPSHOT'
compile 'co.aurasphere.revolver:revolver:0.0.1'
}
我刚刚在我的注释处理器之前移动了Retrofit依赖项。突然间它在建造期间停止显示任何生命迹象。只有当我的注释处理器是最后一个依赖项并且Retrofit就在它之前时才会发生这种情况。如果我的注释处理器是第二个(仍然在Retrofit之后)它可以工作。如果它是最后一个依赖项并且Retrofit不是它之前的依赖项,它就可以工作。
我真的很困惑。我能理解问题是否与Butterknife有关,因为它是另一个注释处理器,但这看起来很奇怪。
显然,这不是一个真正的问题,但我真的很想知道为什么会这样。
谢谢。