3

我可以在我的 android 项目中成功设置 Transfuse,但是在使用 Android Studio 运行应用程序时,它失败了。可能是因为 Manifest xml 必须为空,Transfuse 才能处理。

有没有人让这些一起工作?

4

2 回答 2

5

Transfuse 和 Android Studio 可以很好地协同工作。诀窍是让 Transfuse 与 Gradle 集成。一旦你让 Gradle 工作,构建将启动注释处理器并运行 Transfuse。

我在这里整理了一个示例参考项目:https ://github.com/johncarl81/transfuse/tree/master/examples/gradle

这是到达那里的程序:

  1. 让 Android Studio 生成一个新的 Android 项目
  2. 将AndroidManifest.xml文件移动到Android项目的根目录下,即:~/project/src/main/AndroidManifest.xml -> ~/project/AndroidManifest.xml

  3. 在 gradle.build 文件中设置新的 AndroidManifest.xml 位置:

    android {
        ...
        sourceSets.main {
            manifest.srcFile 'AndroidManifest.xml'
        }
    }
    
  4. 添加 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'
    
  5. 最后添加 transfuse 和 transfuse-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'
    }
}

编辑:

最后,您可能希望将 source/apt_generated/debug 或 source/apt_generated/release 文件夹添加为项目配置下的源文件夹。

第二次编辑:

我用新的 Android-APT 插件更新了上面的例子

于 2013-07-20T19:09:02.850 回答
1

对于使用 Transfuse 3 beta 5 遇到“无法找到 AndroidManifest.xml”的任何人,我通过将其添加到我的 gradle 文件中进行了修复:

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
    }
}
于 2015-06-13T07:08:44.740 回答