2016-05-11 6 views
2

私はAndroid Studio用のgradleプラグインの開発に取り組んでいます。これは私の問題ですGradle APIを使用してAndroid StudioのメインSourceSetを取得するにはどうすればよいですか?Gradle APIを使用してAndroid StudioのメインSourceSetを取得するにはどうすればよいですか?

私はJavaソースディレクトリでいくつかのコピーをしたいと思います。 この質問をする前に、役に立っていたものの、役に立たないものを見つけました。

SourceSet main = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME) 

私は、このエラーメッセージ
Caused by: org.gradle.api.UnknownDomainObjectException: SourceSet with name 'main' not found.

+0

ここでは正確に何をしようとしていましたか? –

答えて

0

ファーストを取得することが唯一のjavaのGradleプラグインとJavaプロジェクトのためだから、コードは動作しません。だから私はグーグルで、何か回避策を見つけました。 ここに私のコードです。

project.afterEvaluate { 
    ... 
    def sets; 
    if (Utils.is140orAbove()) { 
     sets = project.android.sourceSets; 
    } else { 
     sets = project.android.sourceSetsContainer; 
    } 
    sets.all { AndroidSourceSet sourceSet -> 
     if(sourceSet.name.startsWith("main")) 
      for(File file:sourceSet.java.getSrcDirs()) 
       if(file.exists()) { 
        mainSource = file; 
        break; 
       } 
    } 
    ... 
} 

私のコードは美しくありません。

0
project.android.sourceSets.main 

作品。それはタイプAndroidSourceSetであり、SourceSetではないことに注意してください。しかし、基本的に同じAPIを持っていますが、Android関連の追加機能もあります。

関連する問題