我可以在我的android项目中成功设置Transfuse,但是当涉及到使用Android Studio运行应用程序时,它会失败。可能是因为清单xml必须为Transfuse处理而为空。Android Studio with Transfuse
有没有人有过这些工作在一起?
我可以在我的android项目中成功设置Transfuse,但是当涉及到使用Android Studio运行应用程序时,它会失败。可能是因为清单xml必须为Transfuse处理而为空。Android Studio with Transfuse
有没有人有过这些工作在一起?
Transfuse和Android Studio在一起工作得非常好。诀窍是将Transfuse与Gradle集成。一旦你获得了Gradle的工作,构建就会启动注解处理器并运行Transfuse。
我已经把这里的实例参考项目:https://github.com/johncarl81/transfuse/tree/master/examples/gradle
这里的程序到那里:
移动的AndroidManifest.xml文件到Android项目的根目录,即: 〜/ project/src/main/AndroidManifest.xml - >〜/ project/AndroidManifest.xml
设置在gradle.build文件中的新的AndroidManifest.xml位置:
android {
...
sourceSets.main {
manifest.srcFile 'AndroidManifest.xml'
}
}
添加APT插件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.1'
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
apply plugin: 'android-apt'
最后补充转印定影和输血的API:
dependencies {
apt 'org.androidtransfuse:transfuse:0.2.7'
compile 'org.androidtransfuse:transfuse-api:0.2.7'
}
您的最终gradle.build将如下所示:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.1'
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
apply plugin: 'android-apt'
repositories {
mavenCentral()
}
dependencies {
apt 'org.androidtransfuse:transfuse:0.2.7'
compile 'org.androidtransfuse:transfuse-api:0.2.7'
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
sourceSets.main {
manifest.srcFile 'AndroidManifest.xml'
}
}
编辑:
最后你可能希望将源/ apt_generated /调试或源/ apt_generated /释放文件夹添加为项目配置下的源文件夹。
第二个编辑:
我全新的Android-APT插件
woww非常感谢你!对不起,不回复你..忙于其他的东西。无论如何,出于某种原因,我得到“Gradle :: Annotation processor'org.parceler.ParcelAnnotationProcessor'not found。”有任何想法吗? –
也得到了另外两个警告:“Gradle ::上一轮创建的类型为'dummy1374419125337'的文件将不会进行注释处理。”和“Gradle ::类型未封闭的文件'[dummy1374419124436,dummy1374419125337]';这些类型不会经过注释处理” –
我并不想要添加ParcelerAnnotationProcessor,我已经从答案中删除了它,并且应该避免你提到的错误。至于警告他们是良性的,实际上,Transfuse运作需要非封闭文件警告。如果可能的话,我会让他们中的一些人静音。 –
对于任何挣扎与输血3测试版5“找不到AndroidManifest.xml中”更新上面的例子中,我固定通过添加到我的gradle文件:
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
}
}
Gustavo,你在看什么?我能够构建并部署到我的手机和模拟器。您是否在Android Studio之外使用Maven构建命令行? –
嗨johncarl,我实际上在Android Studio中使用了Gradle。但我不想从命令行运行它,我使用该运行按钮从android studio运行它。所以它只能从命令行工作?只要它有效,我真的不介意,但不幸的是,Transfuse文档只提供了关于如何从命令行运行应用程序的maven版本。 –
我没有用Gradle试过它,但我不妨试试它。你有没有可以在github上分享的例子? –