2013-07-15 3 views
3

Я могу успешно настроить Transfuse в моем проекте Android, но когда дело доходит до запуска приложения с помощью Android Studio, он терпит неудачу. Вероятно, потому, что Manifest xml должен быть пуст для Transfuse, чтобы позаботиться.Android Studio с Transfuse

С кем-нибудь когда-либо работали вместе?

+0

Gustavo, что вы видите? Мне удалось создать и развернуть мой телефон и эмулятор. Вы используете Maven вне Android Studio для создания командной строки? –

+0

Привет, johncarl, я на самом деле использую Gradle с Android Studio. но я не пытаюсь запустить его из командной строки, я запускаю его из студии Android с этой кнопкой запуска. так это будет работать только из командной строки? Я действительно не против, пока это работает, но, к сожалению, Transfuse docs предоставил только версию maven о том, как запустить приложение из командной строки. –

+0

Я еще не попробовал это с Gradle, но я мог бы также дать ему шанс. Есть ли у вас пример, который вы можете использовать в github или что-то еще? –

ответ

5

Перегородка и Android Studio работают замечательно хорошо вместе. Хитрость заключается в том, чтобы включить Transfuse с Gradle. Как только вы получите Gradle, сборка просто начнет работу с обработчиком аннотаций и запустит Transfuse.

Я соединил ссылочный проект пример здесь: https://github.com/johncarl81/transfuse/tree/master/examples/gradle

Вот процедура добраться:

  1. Have Android Студия создать новый Android проект
  2. Переместить AndroidManifest.xml файл в корень проекта Android, то есть: ~/project/src/main/AndroidManifest.xml -> ~/project/AndroidManifest.xml

  3. Setup новое место AndroidManifest.xml в файле gradle.build:

    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. Наконец добавить переливать и переливать-апи:

    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' 
    } 
} 

Edit:

Наконец, вы, вероятно, хотите добавить источник/apt_generated/отлаживать или папки с исходными/apt_generated/освобождения в качестве исходных папок при конфигурации проекта.

Второе редактирование:

я обновил приведенный выше пример с новым Android-APT плагин

+0

woww Большое спасибо! жаль, что не вернусь к тебе .. занят другими вещами.во всяком случае, по какой-то причине я получаю «Gradle:: обработчик аннотации» org.parceler.ParcelAnnotationProcessor «не найден». есть идеи? –

+0

также получил еще два предупреждения: «Gradle:: Файл для типа« dummy1374419125337 », созданный в последнем раунде, не будет обрабатываться аннотацией». и «Gradle:: Unclosed files for types» [dummy1374419124436, dummy1374419125337] '; эти типы не будут обрабатываться аннотацией « –

+0

Я не хотел добавлять ParcelerAnnotationProcessor, я удалил его из ответа, и это должно избежать ошибка вы упомянули. Что касается предупреждений, они являются доброкачественными, и на самом деле для Transfuse необходимо предупреждать о незакрытых файлах. Я посмотрю, если возможно, приглушение некоторых из них. –

1

Для тех, кто борется с «Не удалось найти AndroidManifest.xml» с переливать 3 бета 5, я установил добавив это в мой файл с градиентом:

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