2017-09-22 19 views
2

私のAndroid Studioプロジェクトは、このようなディレクトリ構造を持っていますのGradleの設定(ベータ版)

project 
|-- build.gradle 
|-- settings.gradle 
| 
|-- app 
| |-- src 
| |-- build.gradle 
| +-- settings.gradle 
| 
+-- submodule 
    |-- build.gradle 
    |-- settings.gradle 
    +-- library 
      |-- src 
      |-- build.gradle 
      +-- settings.gradle 

project/submoduleはgitのサブモジュールであり、他のAndroid Studioプロジェクトのためのgitリポジトリを直接参照。そのsettings.gradleはちょうどinclude ':library'です。

以前働い設定

project/settings.gradleinclude ':submodule/library'氏は述べています。 project/app/build.gradleには、compile project(':submodule/library')という行があります。

このすべては、Android Studioの3の前にうまく働いたが、今のAndroidメーカーは、それがその名前でモジュールを見つけることができないことを不平を言う:

Error:Unable to find module with Gradle path ':submodule/library' (needed by module 'Accession'.)

(のGradleでコマンドラインでのビルドを実行するに表示されますうまく動作しないので、何か好きではないAndroidスタジオのようです。)

:submodule/libraryを参照しているように見えるのは、gradleに指定されているプロジェクトの名前と一致している可能性がありますconfigは、相対的なpと同じであると仮定していましたその根のath。

1はbuild.gradlesettings.gradleの両方に:submodule:library:submodule/libraryを交換し

考えられる解決策:

私は2つの可能な解決策を持っています。これは動作するように見えますが、私の推測では、それはサブプロジェクトと同様に、:submoduleのgradleプロジェクトも含まれています。さらに、この:x:yの表記が実際に何を表しているのかは分かりません。

解決策2

settings.gradle
include ':library' 
project(':library').projectDir = file('submodule/library') 

include ':submodule/library'を交換し、build.gradlecompile project(':library')compile project(':submodule/library')を交換してください。

これは「正しいこと」と思われます。

質問

誰かがまさに "さのGradleのこれら3つのビットのそれぞれのために働く必要があります(もしあれば)(オリジナル設定と2の可能な修正)を、上に行くとどのいるものを教えてもらえベストプラクティス "?私が説明した内容

アップデート(明確化)

は、Gradleの4.1(私の古いのGradleとAndroidのGradleプラグインのバージョンの設定(Gradleでは3.3、アンドロイドのGradleプラグイン2.3.3)との両方を更新した後の両方が起こりますAndroid Gradle Plugin 3.0.0ベータ版)

答えて

0

新しいガードルリリースで多くの変更が加えられました。ビルドスクリプトももう機能しませんでした。しかし、ここでは、新しいバージョンで動作するようにビルドスクリプトを移行する方法に関する良い文書があります。

次のようにではなく、あなたの依存関係を設定する必要があります:ドキュメントのこの部分はあなたのためのSTHする必要があります例えば

dependencies { 
// This is the old method and no longer works for local 
// library modules: 
// debugCompile project(path: ':foo', configuration: 'debug') 
// releaseCompile project(path: ':foo', configuration: 'release') 

// Instead, simply use the following to take advantage of 
// variant-aware dependency resolution. You can learn more about 
// the 'implementation' configuration in the section about 
// new dependency configurations. 
implementation project(':foo') 

// You can, however, keep using variant-specific configurations when 
// targeting external dependencies. The following line adds 'app-magic' 
// as a dependency to only the 'debug' version of your module. 

debugImplementation 'com.example.android:app-magic:12.3' 

}

ここで完全なドキュメントへのリンクがありますそれが私のためにやったように助けてくれることを願っています

https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

+0

上記の問題は、Android Studioのアップグレード後に発生しました。私はまだGradle 3.3とAndroid Gradle Plugin 2.3.3を使用しています。私がGradleのバージョンを4.1に、プラグインのバージョンを3.0.0に変更し、どこでも 'implementation 'で' compile'を置き換えたとしても、問題は依然として残っていました。 – UtterlyConfused

関連する問題