2015-12-17 28 views
8

mam tej struktury projektu: ProjectFolder/IosFolder, AndroidFolder, CommonFolder Teraz android aplikacja wykorzystuje pliki z folderu To aktywów. Ale zdecydowaliśmy się utworzyć wspólny folder dla tych samych plików.Tworzenie Zdarz.wst gromadzeniu aby skopiować pliki do folderu aktywów w aplikacji Android

mógłbyś mi pomóc, aby funkcja czarownica skopiuje pliki z wspólnego folderu (w tym folderze znajduje się pod moim projekcie, tak w Android Studio ja nie widzę) do Android Aktywa folder, zanim zostanie zbudowany app ?

We wspólnym folderze będą niektóre pliki .json i pliki czcionek.

Jak rozumiem, muszę napisać tę funkcję w moim pliku build.gradle coś takiego:

task copyFiles(type: Copy) 

    copyFiles { 
     description = 'Copy files' 
     from 'Common/' 
     into 'Android/{projectName}/app/src/main/assets' 
    } 

Oto mój plik:

apply plugin: 'com.android.application' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "amc.amc_mobile_promo2" 
     minSdkVersion 17 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     //For Flurry 
     multiDexEnabled = true 
    } 
    //For Flurry 
    /*compileOptions { 
     //noinspection GroovyAssignabilityCheck 
     sourceCompatibility JavaVersion.VERSION_1_7 
     //noinspection GroovyAssignabilityCheck 
     targetCompatibility JavaVersion.VERSION_1_7 
    }*/ 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.android.support:appcompat-v7:23.1.1' 

    compile 'com.facebook.android:facebook-android-sdk:4.7.0' 
    compile 'com.mcxiaoke.volley:library:1.0.19' 
    compile 'joda-time:joda-time:2.8.2' 
    compile 'com.github.orangegangsters:swipy:[email protected]' 

    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.squareup.okhttp:okhttp:2.6.0' 
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.6.0' 

    /*compile 'com.android.support:multidex:1.0.1' 
    compile 'com.google.android.gms:play-services-ads:8.3.0' 
    compile 'com.google.android.gms:play-services-identity:8.3.0' 
    compile 'com.google.android.gms:play-services-gcm:8.3.0'*/ 
} 

A może mi powiedzieć gdzie czy mogę zobaczyć wyniki wykonanych metod w Gradle Console?

Jaką ścieżkę należy użyć i gdzie w pliku build.gradle należy umieścić tę metodę?

Mam nadzieję, że mi pomożesz.

Odpowiedz

5

możesz spróbować tej konfiguracji:

gradle.projectsEvaluated { 
    preBuild.dependsOn(copyFiles) 
} 

zmiana: istnieje wiele poleceń zadanie kopiowania może zrobić dla Ciebie. od docs oto przykłady:

task anotherCopyTask(type: Copy) { 
// Copy everything under src/main/webapp 
from 'src/main/webapp' 
// Copy a single file 
from 'src/staging/index.html' 
// Copy the output of a task 
from copyTask 
// Copy the output of a task using Task outputs explicitly. 
from copyTaskWithPatterns.outputs 
// Copy the contents of a Zip file 
from zipTree('src/main/assets.zip') 
// Determine the destination directory later 
into { getDestDir() } 

}

jeśli chcesz po prostu skopiować z jednego katalogu źródłowego do innego można zrobić to:

task copyFiles(type: Copy) { 
    from 'pathToMyAssets' 
    into 'AndroidStudioAssetsFolderPath' 
} 

UPDATE zrobić w swojej aplikacji kompilacji .gradle na samym dole:

task copyFiles(type: Copy) { 
    from 'Users/kostya/repo_amc_mobile_promo/Common/' 
    into 'Users/kostya/repo_amc_mobile_promo/Android/AMC_Mobile_Promo2/app/src/main/assets' 
} 

preBuild.dependsOn(copyFiles) 
+0

Czy możesz pomóc ze ścieżką folderów, czego potrzebuję w metodzie? CopyFiles zadaniowe (typ: Copy) CopyFiles { description = 'Kopiowanie plików' z 'Common /' na '{ projekt}/app/src/main/aktywa /' include ('**/* ') } gradle.projectsEvaluated {preBuild.dependsOn (copyFiles)} – vlasevich

+0

Jeśli to nie jest trudne, pomóż mi przy pomocy kodu pls. – vlasevich

+0

zaktualizowałem moją odpowiedź. czy prosisz mnie, abym dostał dla ciebie ścieżki? czy to wystarczy, abyś mógł iść? – j2emanue