web-dev-qa-db-ja.com

gms:play-services-visionとfirebaseのバージョンの競合

React-native-firebaseとreact-native-cameraの両方をインストールしました。 play-services -visionが12.0.1で立ち往生しているときにカメラは正常でしたが、このエラーに遭遇しました(プロパティgoogleVisionBarcodeDetectorEnableの更新エラー) https://github.com/react-native-community/react-native-camera/issues/184415.0.2へのアップグレードが必要です。

play-services-vision15.0.2から12.0.1にぶつかると、Google Play ServicesとFirebaseの競合があるようです:

Dependency failing: com.google.Android.gms:play-services-flags:15.0.1 -> com.google.Android.gms:play-services-basement@[
  15.0.1], but play-services-basement version was 16.0.1.

  The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
  ifact with the issue.
  -- Project 'app' depends onto com.google.firebase:[email protected]
  -- Project 'app' depends onto com.google.Android.gms:[email protected]
  -- Project 'app' depends onto com.google.firebase:[email protected]
  -- Project 'app' depends onto com.google.Android.gms:[email protected]

com.google.Android.gms:[email protected]を試しましたが、exceed 64k methodsエラーが発生しました。 17.0.2までバンプすると、com.google.Android.gms:play-services-basementとのバージョンの競合が発生します。

React-native-firebaseとreact-nativeカメラの両方を使用している人はいますか?このバージョンの競合の問題を解決する方法を教えてください。

Android/app/build.gradleの依存関係は次のとおりです。

dependencies {

    implementation (project(':react-native-camera')) {
      exclude group: "com.google.Android.gms"
      implementation "com.Android.support:exifinterface:${rootProject.ext.supportLibVersion}"
      implementation ('com.google.Android.gms:play-services-vision:12.0.1') {
        force = true
      }
    }
    implementation project(':react-native-gesture-handler')
    implementation project(':react-native-webview')
    implementation project(':react-native-fast-image')
    implementation project(':react-native-google-signin')
    implementation project(':react-native-firebase')
    implementation 'com.google.firebase:firebase-core:16.0.6'
    implementation ('com.google.Android.gms:play-services-base:16.0.1')
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation('com.crashlytics.sdk.Android:crashlytics:2.9.5@aar') {
        transitive = true
    }
    implementation(project(':react-native-google-signin')) {
        exclude group: "com.google.Android.gms" // very important
    }
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "com.Android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation 'com.facebook.react:react-native:+'
    implementation project(':react-native-sqlite-storage')
    implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
    implementation 'com.facebook.fresco:animated-gif:1.10.0'
}

Android/build.gradleのext

ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 19
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "27.1.1"
}

パッケージ:

"react-native-camera": "^1.6.4",
"react-native-firebase": "^5.1.1",
10
RedGiant

Gms:play-services-visionのバージョンを更新する必要があります。 implementation 'com.google.Android.gms:play-services-vision:17.0.2'

8
Varun

Expo(v34)からfirebaseを使用したいリアクションネイティブプロジェクトにイジェクトした後、expo-barcode-scannerを使用し続けた場合、古いバージョンのplay-services-visionを使用しているため、問題はそこにあります。

複数のオプションがあります:

  • 新しいExpo SDKがリリースされたら、それを使用します。ビジョンライブラリがアップグレードされると確信しています。
  • 依存関係としてexpo-barcode-scannerを削除し、別の依存関係を使用します。
  • expo-barcode-scannerのビジョンライブラリのバージョンをポンプしますnode_modules\expo-barcode-scanner\Android\build.gradleのlib(非推奨)
1
Bassel Shmali

次の理由により、MultiDexを有効にする必要があります。

1つのDEXファイル内で参照できるメソッドの総数は65,536です

そして、multidexを有効にすると、コンパイラは別のdexファイルに追加のメソッド/機能を追加します。

次の手順を実行します。

1- MultiDexをbuild.gradle(モジュールファイル)に追加します。

implementation 'com.Android.support:multidex:1.0.3'

2-プロジェクトのクレンとビルド

3-内部の同じbuil.gradle(Module)にmultiDexEnabled = trueを追加します

      Android {  
       .... 
         defaultConfig {
      ...
      multiDexEnabled true
     ...
      } 
     } 

multiDexを有効にする

4-プロジェクトにアプリケーションクラスを追加し、アプリケーションの代わりにMultiDexApplicationから拡張するアプリケーションクラスをオーバーライドします。次に例を示します。

 Java:   public class MyMultiDexApplication extends MultiDexApplication { ... }
Kotlin :  class MyMultiDexApplication : MultiDexApplication() { override fun onCreate() {
    super.onCreate() } }

5-アプリケーションタグのAndroidManifest.xmlにアプリケーションクラス名を追加します。

<application
        Android:name=".MyMultiDexApplication "
        Android:icon="@mipmap/ic_logo"
        Android:label="@string/app_name"
        >

6-必要な依存関係の追加:

com.google.Android.gms:[email protected]

build.gradleへ

7-再度ビルドして完了

詳細については、Googleリファレンス: リンクの説明をここに入力

0
Hamed Jaliliani

モジュールをインポートするときにこれを避けるための私の簡単な修正は

1)npm install 2)run-Android/run-ios 3)同じメッセージが表示されるか、時々メッセージが表示されない4)node_modules/react-native-component-nameに移動してAndroid/build.gradleファイルを見つけて、変更compileSdkVersionとbuildToolsVersionを自分のバージョン(最新)に更新し、すべての依存関係をプラスに置き換えます

com.google.Android.gms:play-services-vision:17.0.2 => com.google.Android.gms:play-services-vision:+この方法では、モジュールは常に利用可能な最新のライブラリを使用します

0
ValdaXD