Android 安卓工作室与输血

Android 安卓工作室与输血,android,runtime-error,android-studio,transfuse,Android,Runtime Error,Android Studio,Transfuse,我可以在我的android项目中成功地设置Transfuse,但当涉及到使用android Studio运行应用程序时,它失败了。可能是因为清单xml必须为空才能进行转换 有人曾经将这些功能结合在一起吗?Transfuse和Android Studio非常好地结合在一起。诀窍是将输血与Gradle整合。一旦Gradle开始工作,构建将启动注释处理器并运行Transfuse 我在此列出了一个示例参考项目: 以下是到达目的地的程序: 让Android Studio生成一个新的Android项目 将A

我可以在我的android项目中成功地设置Transfuse,但当涉及到使用android Studio运行应用程序时,它失败了。可能是因为清单xml必须为空才能进行转换


有人曾经将这些功能结合在一起吗?

Transfuse和Android Studio非常好地结合在一起。诀窍是将输血与Gradle整合。一旦Gradle开始工作,构建将启动注释处理器并运行Transfuse

我在此列出了一个示例参考项目:

以下是到达目的地的程序:

  • 让Android Studio生成一个新的Android项目
  • 将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'
        }
    }
    
    编辑:

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

    第二次编辑:


    我用新的Android APT插件更新了上面的示例,对于那些在Transfuse 3 beta 5中遇到“找不到AndroidManifest.xml”问题的人,我通过将其添加到我的gradle文件中来修复:

    apt {
        arguments {
            androidManifestFile variant.outputs[0].processResources.manifestFile
        }
    }
    

    古斯塔沃,你看到了什么?我能够构建并部署到我的手机和模拟器上。你在Android Studio之外使用Maven在命令行上构建吗?嗨,johncarl,我实际上在Android Studio中使用Gradle。但我并不是在命令行上运行它,我是在android studio上用run按钮运行它。那么,它只能从命令行运行吗?我真的不介意它能工作多久,但不幸的是,Transfuse docs只提供了maven版本的如何从命令行运行应用程序。我已经用Gradle试过了,但我不妨试一试。你有没有可以在github上分享的例子?非常感谢!!很抱歉没有给你回复。。忙着做其他事情。无论如何,出于某种原因,我得到了“找不到Gradle::Annotation processor'org.parceler.ParcelanotationProcessor.”有什么想法吗?还得到了另外两个警告:“上一轮创建的'dummy1374419125337'类型的Gradle::文件将不受注释处理。”和“Gradle::未关闭的类型文件”[dummy1374419124436,dummy1374419125337];这些类型将不进行注释处理”我不是要添加ParcelerAnnotationProcessor,我已经从答案中删除了它,这应该可以避免您提到的错误。至于警告,它们是良性的,实际上未关闭的文件警告是Transfuse运行所必需的。如果可能的话,我会考虑禁用其中一些。太棒了!重新设置后,我再也不会收到警告了移动处理器。我想我们就快到了!我可以用gradle和Android Studio成功构建。我认为最后一件事是,当我使用Android Studio点击“运行”时,它会显示“未找到默认活动”NVM,添加source/apt_-generated/debug和source/apt_-generated/release作为源文件夹解决了这个问题!我很高兴开始使用Transfuse!!非常感谢!继续完成这项惊人的工作!