-1

Я принимаю новое обновление Google Places SDK в моем приложении. Я использую версию ниже. Но у меня есть проблемы с этим. Я понятия не имею, если в чем причина проблемы. Я не знаю, что FinalizableReferenceQueue упоминается в ошибке.

dependencies {
  implementation 'com.google.android.libraries.places:places:1.0.0'
}

Там нет ошибки при создании проекта. Ошибка будет отображаться только при запуске проекта. Я использую Android Studio.

Multiple dex files define Lcom/google/common/base/FinalizableReferenceQueue;

2 ответа2

1

После проб и ошибок, комментируя одну зависимость за раз, я наконец нашел проблему.

apply plugin: 'com.android.application'

android {

compileSdkVersion 26
useLibrary 'org.apache.http.legacy'

defaultConfig {
    applicationId "xxx.com.xxx"
    minSdkVersion 15
    targetSdkVersion 26
    versionCode 201811141
    versionName "2018.11.14.1"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
 }
}

dependencies {
implementation 'com.google.android.libraries.places:places:1.0.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.maps.android:android-maps-utils:0.4+' 
implementation files('libs/acra-4.5.0.jar')
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.6.0'
implementation 'com.squareup.okhttp3:okhttp:3.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
implementation 'com.android.support:cardview-v7:26.+'
implementation 'com.android.support:recyclerview-v7:26.+'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// App's dependencies, including test
implementation 'com.android.support:support-annotations:27.1.1'
implementation 'org.apache.httpcomponents:httpcore:4.4.1'
implementation 'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1'
implementation project(':aFileChooser')
}

//This are all the libraries that I commented to fixed the issue.
//implementation fileTree(include: ['*.jar'], dir: 'libs')//this will give mutidex error
//implementation files('libs/droid-fu-1.0-SNAPSHOT.jar')
//implementation files('libs/android-async-http-1.4.9.jar')
//compile 'com.squareup.retrofit2:converter-scalars:2.0.0'
//implementation 'cz.msebera.android:httpclient:4.3.6' //this will give error if use
0

В случае, если кто-то еще столкнется с этой проблемой, я предложу немного больше объяснения ...

Основная причина заключается в том, что проект предварительно компилирует DroidFu как JAR и включает его в качестве зависимости, которая упаковывает несколько классов Guava без перемаркировки пути пакета, что приводит к конфликтам версий с зависимостями Guava в библиотеке Places SDK.

Хотел бы отметить это, так как это может быть проблемой в других проектах, которые полагаются на Guava.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .