Конфликт версий между gms: play-services-vision и firebase - PullRequest
0 голосов
/ 28 декабря 2018

Я установил как свою собственную камеру, так и свою собственную.Камера работала нормально, когда play-services -vision застряла на 12.0.1, но я только что натолкнулся на эту ошибку ( Ошибка обновления свойства googleVisionBarcodeDetectorEnable ) https://github.com/react-native-community/react-native-camera/issues/1844, требующего обновления до 15.0.2.

Похоже, что возникают конфликты между сервисами Google Play и Firebase, когда play-services-vision увеличено до 15.0.2 с 12.0.1:

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:firebase-messaging@17.3.4
  -- Project 'app' depends onto com.google.android.gms:play-services-base@16.0.1
  -- Project 'app' depends onto com.google.firebase:firebase-core@16.0.6
  -- Project 'app' depends onto com.google.android.gms:play-services-vision@15.0.2

Я пытался com.google.android.gms:play-services-vision@16.2.0но это дало мне ошибку exceed 64k methods.Повышение до 17.0.2 может вызвать конфликт версий от com.google.android.gms:play-services-basement.

Кто-нибудь пользуется как камерой-реагирующим, так и камерой-реагирующим?Можете ли вы сказать мне, как решить эту проблему конфликта версий?

Вот зависимости в 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'
}

Ext в android / build.gradle

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",

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Вам необходимо включить MultiDex, потому что:

общее количество методов, на которые можно сослаться в одном DEX-файле, составляет 65 536

, и при включении multidex компилятор будетпоместите дополнительные методы / функции в другой файл dex.

, сделайте так:

1 - Добавьте MultiDex в build.gradle (файл модуля):

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

2-Clen & Build проекта

3- Добавить multiDexEnabled = true к тому же build.gradle (Модуль), внутри

      android {  
       .... 
         defaultConfig {
      ...
      multiDexEnabled true
     ...
      } 
     } 

, чтобы включить MultiDex

4- ДобавитьКласс приложения для вашего проекта и переопределить класс приложения, который расширяет его из MultiDexApplication вместо Application, например:

 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:play-services-vision@16.2.0

для build.gradle

7 - Создайте заново и выполните

Справочник Google для получения дополнительной информации: введите описание ссылки здесь

0 голосов
/ 16 января 2019

Мое простое исправление, чтобы избежать этого при импорте модулей:

1) npm install 2) run-android / run-ios 3) я получаю то же сообщение или иногда нет сообщения 4) я иду в node_modules/ response-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 голосов
/ 16 января 2019

Вам необходимо обновить версию gms: play-services-vision.implementation 'com.google.android.gms:play-services-vision:17.0.2'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...