Принудительно установить androidx.camera на указанную c версию - PullRequest
0 голосов
/ 11 апреля 2020

Я интегрируюсь с библиотекой, которая использует androidx.camera, version.cameraX : '1.0.0-beta02':

// Camera
            camera                  : [
                    camera2  : "androidx.camera:camera-camera2:$versions.cameraX",
                    core     : "androidx.camera:camera-core:${versions.cameraX}",
                    ext      : "androidx.camera:camera-extensions:${versions.cameraX}",
                    lifecycle: "androidx.camera:camera-lifecycle:${versions.cameraX}",
                    view     : "androidx.camera:camera-view:1.0.0-alpha08",
            ],

, и я получаю следующую ошибку при выполнении ./gradlew assembleDebug :app:dependencies:

...
Dependency resolved to an incompatible version: Dependency(fromArtifactVersion=ArtifactVersion(groupId=androidx.camera, artifactId=camera-view, version=1.0.0-alpha08), toArtifact=Artifact(groupId=androidx.camera, artifactId=camera-core), toArtifactVersionString=[1.0.0-beta01])

FAILURE: Build failed with an exception.
* What went wrong:

Could not determine the dependencies of task ':app:compileWorldDebugJavaWithJavac'.

> In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[1.0.0-beta01]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

  Dependency failing: androidx.camera:camera-view:1.0.0-alpha08 -> androidx.camera:camera-core@[1.0.0-beta01], but camera-core version was 1.0.0-beta02.

  The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the artifact with the issue.


  -- Project 'app' depends onto androidx.camera:camera-lifecycle@{strictly 1.0.0-beta02}
  -- Project 'app' depends onto androidx.camera:camera-view@{strictly 1.0.0-alpha08}
  -- Project 'app' depends onto androidx.camera:camera-core@{strictly 1.0.0-beta02}
  -- Project 'app' depends onto androidx.camera:camera-camera2@{strictly 1.0.0-beta02}
...

Итак, я попытался сделать так в своем проекте build.gradle:

...
//had zero effect
configurations {
    compileClasspath.resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            if (details.requested.group == 'androidx.camera'
                    && !details.requested.name.contains('camera-core')) {
                details.useVersion "1.0.0-beta02"
            }
            if (details.requested.group == 'androidx.camera'
                    && !details.requested.name.contains('camera-view')) {
                details.useVersion "1.0.0-alpha09"
            }
        }
    }
}

Я думаю, что указанное выше изменение является правильным способом форсировать версию. Кроме того, я пробовал 1.0.0-beta01 и 1.0.0-beta02 для camera-core и 1.0.0-alpha08 и 1.0.0-alpha09 для camera-view, но не повезло.

Будем весьма благодарны за любые указания по поиску правильной комбинации версий, которые помогут решить проблему.

...