我有这个项目结构: ProjectFolder/IosFolder,AndroidFolder,CommonFolder 现在Android应用程序使用它的资产文件夹中的文件.但我们决定为相同的文件制作Common文件夹.
你可以帮我制作函数女巫会将文件从Common文件夹复制(这个文件夹在我的项目中,所以在Android Studio中我没有看到它)到android 资源文件夹之前构建应用程序吗?
Common文件夹中将包含一些.json文件和字体文件.
据我所知,我需要在我的build.gradle文件中编写这样的函数:
task copyFiles(type: Copy) copyFiles { description = 'Copy files' from 'Common/' into 'Android/{projectName}/app/src/main/assets' }
这是我的档案:
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:1.2.0@aar' 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'*/ }
你能告诉我在哪里可以看到Gradle Console中执行方法的结果?
我需要使用什么路径以及build.gradle文件位于此方法的位置?
希望你能帮助我.
你能试试这个配置吗:
gradle.projectsEvaluated { preBuild.dependsOn(copyFiles) }
更新:复制任务可以为您执行许多命令.从这里的文档是例子:
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() }
}
如果您只想从一个源目录复制到另一个源目录,则可以执行以下操作:
task copyFiles(type: Copy) { from 'pathToMyAssets' into 'AndroidStudioAssetsFolderPath' }
更新在你的应用程序的build.gradle底部执行此操作:
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)