2017-08-17 12 views
2
task copyLibs(type: Copy) { 
    mybuildpath('path.name').string.split(" ") 
      .collect { 
     mybuildpath('[' + it + ']pkg.lib').string 
    } 
    .findAll { 
     it.length() > 0 
    } 
    .each { 
     from(new File(it)) { 

      if (!getCurrentFlavor().contains('SomeKeyWord')) { 
       include '**/folder1/**/*.so' 
       include '**/folder2/**/*.so' 
       //    include '**/lib1.so' 
       //    include '**/lib2.so' 
       //    include '**/lib3.so' 
       //    include '**/lib4.so' 
      } else { 
       include '**/*.so' 
      } 
     } 
     into new File(buildDir, 'native-libs-folder') 
    } 
} 

私のプロジェクトのandroid.gradleこれはコンパイル時にいくつかの.soファイルを含める必要があります。 folder1とfolder2にはこれらのすべてのライブラリ[lib1、lib2、...など]があります。それらをすべて含めたいと思います。 しかし、このコードは動作していませんし、自分のnative-lib-folderにあるライブラリをインポートしていません。 しかし、私はそれらの2行をコメントし、以下の4つのコメントを外すと[**それらの** **/lib1.so、.. ]これらの4つのライブラリは、native-lib-folderにコピーされています。 私は検索して、正規表現構文が正しいと感じていますが、私が間違っていることをまだ理解できません。 ご案内くださいandroid.gradleでファイルへのパスを正しく設定できません

答えて

1

IiはAnt path style正規表現ではありません。

ではなく

include '/folder1/*.so' 
include '/folder2/*.so' 

を試してみてください。

関連する問題