8

ho questa struttura di progetto: ProjectFolder/IosFolder, AndroidFolder, CommonFolder Ora Android app utilizza i file dalla cartella che proprio patrimonio. Ma decidiamo di creare una cartella comune per gli stessi file.Crea evento generazione preliminare per copiare i file nella cartella beni in applicazione Android

Potrebbe aiutarmi a far funzionare strega copierà i file dalla cartella Common (questa cartella è sotto il mio progetto, in modo in Android Studio Io non la vedo) per Android beni cartella prima applicazione sarà costruito ?

Nella cartella Comune ci saranno alcuni file .json e file di font.

quanto ho capito, ho bisogno di scrivere questa funzione nel mio file build.gradle qualcosa di simile:

task copyFiles(type: Copy) 

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

Ecco il mio file:

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

e potrebbe me dove dirvi posso vedere i risultati dei metodi eseguiti in Gradle Console?

Quale percorso è necessario utilizzare e dove nel file build.gradle si trova questo metodo?

Spero che mi aiuti.

risposta

5

Potete provare questa configurazione:

gradle.projectsEvaluated { 
    preBuild.dependsOn(copyFiles) 
} 

aggiornamento: ci sono molti comandi il compito copia può fare per voi. Dalla documentazione Ecco alcuni esempi:

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() } 

}

se si desidera solo copiare da una directory di origine ad un altro si può fare questo:

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

UPDATE fare questo nella costruzione della tua app .gradle in fondo:

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

Potrebbe aiutare con il percorso delle cartelle ciò che mi serve nel metodo? compito CopyFiles (tipo: copia) CopyFiles { description = 'Copiare i file' da 'Common /' in '{progetto}/app/src/main/attività /' includono ('**/* ') } gradle.projectsEvaluated {preBuild.dependsOn (copyFiles)} – vlasevich

+0

Se non è difficile aiutami con codice pls. – vlasevich

+0

ho aggiornato la mia risposta. mi stai chiedendo di ottenere i percorsi per te? o è abbastanza per farti andare? – j2emanue