1

現在、プロジェクトの依存関係としてhttps://github.com/firebase/FirebaseUI-Androidのローカル クローンを追加しようとしています。FirebaseUI を変更したいので、標準的な方法でインポートしたくありません。現在、私はこれを試しています:

settings.gradle:

include ':firebaseui'
project(':firebaseui').projectDir = new File(settingsDir, '../FirebaseUI')

私のモジュールのbuild.gradle:

dependencies {
    compile project(":firebaseui")
}

しかし、私は得る:

Error:(42, 0) Could not read script 'C:\Users\Gonzalo\AndroidStudioProjects\MyProject\common\constants.gradle' as it does not exist.

これは FirebaseUI\build.gradle にインポートされます:

allprojects { project ->
    // Get constants, this is where we store things
    // like the list of submodules or the version
    project.apply from: "$rootDir/common/constants.gradle"
...

FirebaseUI の build.gradle または私のものの問題ですか?

4

2 に答える 2

1

リポジトリ経由でバイナリ deps を使用しますmavenLocal()

  1. git clone https://github.com/firebase/FirebaseUI-Android
  2. cd FirebaseUI-Android
  3. gradlew tasks// 表示されますpublishToMavenLocal
  4. IntellijFirebaseUI-Androidの別のインスタンスを開く
  5. 変更を加える
  6. 走るgradlew publishToMavenLocal
  7. 独自のプロジェクトでmavenLocal()repositories
  8. 次に、あなたのことを追加compile 'com.firebaseui:firebase-ui:0.4.1'しますdependencies

結局のところ、あなたは行ってもいいです。

  1. ライブラリに変更を加える
  2. 経由で再度公開しますgradlew publishToMavenLocal
  3. アプリケーションを再コンパイルする
于 2016-06-16T14:30:04.150 に答える
0

問題は何$rootDirを意味するかです。firebase コードだけをビルドしようとすると、その親 $rootDir はその親フォルダーを返します。また、constants.gradle の相対位置は有効です。

プロジェクトのサブプロジェクトとして firebase を追加すると、$rootDir がルート ディレクトリになり$rootDir/common/constants.gradle、有効なパスではなくなります。パスを次のように置き換えることで回避できる場合があります。

$rootDir../FirebaseUI/common/constants.gradle

ただし、firebase コードにローカルな変更を加えている場合を除き、maven リポジトリからバイナリ依存関係を使用するという Jared の推奨事項を支持します。

于 2016-06-16T15:49:36.180 に答える