Uber SDK в Android

Я пытаюсь добавить кнопку «заказать поездку» Uber в свое приложение для Android. В моем файле сборки Gradle я добавил следующую строку:

compile 'com.uber.sdk:rides-android:0.5.0'

Студия Android автоматически запрашивает синхронизацию файлов gradle по мере их изменения. После этого я получаю более 500 ошибок в своем проекте, но когда я удаляю зависимость, все возвращается на круги своя.

Может ли кто-нибудь помочь мне решить эту проблему?

Сценарий градации модуля:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

android {
    useLibrary 'org.apache.http.legacy'
}

defaultConfig {
    applicationId "com.example.android.myuberapp"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/fonts'] } }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/android-async-http-1.4.4.jar')
    compile files('libs/volley.jar')
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.github.sembozdemir:ViewPagerArrowIndicator:1.0.0'
    compile 'com.google.maps.android:android-maps-utils:0.4+'
    compile 'com.github.jakob-grabner:Circle-Progress-View:v1.2.9'
    compile 'me.grantland:autofittextview:0.2.+'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.uber.sdk:rides-android:0.5.0'
}

Полный набор ошибок:

Файл ошибки находится здесь


person Michael Richardson    schedule 07.06.2016    source источник
comment
Публикация некоторых ошибок поможет.   -  person nicobatu    schedule 08.06.2016
comment
Эй, я работал над этим SDK. Можете ли вы опубликовать свой скрипт Gradle и ошибки, и я помогу вам отладить?   -  person tsmith    schedule 09.06.2016
comment
@tsmith Я добавил ошибки и файл градиента. Надеюсь, вы можете помочь.   -  person Michael Richardson    schedule 09.06.2016


Ответы (1)


Похоже, вы преодолели ограничение в 64 КБ и должны включить multidex.

Большинство этих «ошибок» на самом деле являются предупреждениями, которые, по-видимому, группируются вместе. Проверьте последние пару строк ошибки для точного сообщения.

В файле build.gradle

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

И в вашем манифесте:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

Отдельно:

Поскольку Uber SDK не такой большой, еще одно предложение отложить мультидекс — использовать только те библиотеки сервисов Play, которые вам действительно нужны.

Например, вместо

'com.google.android.gms:play-services:8.4.0'

Вы можете использовать только облачный обмен сообщениями (если это используемый компонент).

com.google.android.gms:play-services-gcm:8.4.0

Подробнее здесь

person tsmith    schedule 09.06.2016
comment
Спасибо! Это сработало для меня. Я сделал вам комбинацию из двух. Сначала я настроил MultiDex, а затем очистил свои компиляции в файле gradle. - person Michael Richardson; 10.06.2016