Android API и версия Gradle - PullRequest
       0

Android API и версия Gradle

0 голосов
/ 23 октября 2018

Я новичок в разработке приложений для Android.В настоящее время я планирую обновить версию API от API 25 до API 28. Это необходимо для обновления версии Gladle?На мой взгляд, это не нужно.

Пожалуйста, совет.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Да, это требуется.В некоторых случаях это не так.КОГДА ЭТО СОВМЕСТИМО.При перемещении 3 версий и ОСОБЕННО при переходе на новую поддержку AndroidX и API 28 это определенно требуется.Тот, кто говорит, что это не так, еще не выполнил это обновление.

Плагины Gradle написаны специально для соответствия инструментам сборки, и хотя не каждое обновление является критическим изменением между ними.Рекомендуется оставаться с совместимыми версиями.Они должны быть совместимы.Например, если вы переходите на 28, вы, вероятно, будете использовать инструмент миграции для миграции на пространства имен androidx.Это ломает большую часть кода и требует небольшого TLC для его запуска и запуска.

Тогда вашему Gradle понадобится дополнительный файл свойств, чтобы знать, что дочерние пространства имен не будут совпадать и вызовут конфликты.Чтобы исправить это, мы добавляем файл gradle.properties в корневой каталог проекта.

gradle.properties

 android.enableJetifier=true
 android.useAndroidX=true
 org.gradle.jvmargs=-Xmx1536m <--OPTIONAL Up to you, memory management

AndroidX для последних 28 API. Jetifier дляразрешив переходным и прямым зависимостям попытаться перевести их в последний режим компиляции совместимости с androidx.

Если вы не сделаете эти элементы, вы не получите должной компиляции на 28.

KotlinВерсия 1.2.70 - это то, где вы хотите быть.Как .71 имеет проблемы с замерзанием.Gradle.3.3.0-alpha11 или вы можете сделать 3.4.0-alpha01.Никто не любит использовать альфа-сборки, но если вы переходите на androidx и собираете инструменты 28, я рекомендую его, иначе вы будете бороться с проблемами компиляции.Просто следите за стабильной версией в ближайшие месяцы.

Убедитесь, что у вас есть последние репозитории allprojects, а также они используют Jetpack сейчас.Итак, в ваш родительский проект build.gradle входит.

УРОВЕНЬ ПРОЕКТА build.gradle

  buildscript {
    ext.kotlin_version = '1.2.70'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Уровень прикладного модуля build.gradle

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'kotlin-kapt'

        android {
           compileSdkVersion 28
           buildToolsVersion '28.0.3'
etc.....//////

     dependencies {
        //Kotlin Compiler Libraries
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
        implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.25.3'
        implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.25.3'

        //Android Google Libraries
        implementation 'androidx.appcompat:appcompat:1.0.0'
        implementation 'com.google.android.material:material:1.0.0'
        implementation 'androidx.appcompat:appcompat:1.0.0'
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        implementation 'androidx.cardview:cardview:1.0.0'
        implementation 'androidx.recyclerview:recyclerview:1.0.0'
        implementation "androidx.constraintlayout:constraintlayout:2.0.0-alpha2"
        implementation "com.google.android.gms:play-services-location:16.0.0"

etc.....//////

Поверь мне, когда я скажу тебе.Я потратил дни на борьбу с обновлениями androidx, чтобы попасть в 28 на ранней стадии.Так что, если кто-то дает вам совместимые версии, которые хорошо сочетаются друг с другом.Возьми и беги с этим.Я сделал это для вас выше.

Дополнительная информация о переходе на 28 и поддержке новых пространств имен для Android.https://developer.android.com/jetpack/androidx/migrate

Одно из их самых болезненных обновлений, с которыми я когда-либо имел дело начиная с версии 1. Так что готовьтесь к некоторым неприятностям;).

Happy Coding.

0 голосов
/ 23 октября 2018

Это не обязательно.Обновлять или нет, это полностью ваш выбор.Обновление Gradle или обновление Sdk они не связаны друг с другом напрямую.Обновление SDK предоставляет вам новые функции, а обновление Gradle - другие функции.Это разные.Но обновление всегда хорошо.Я предлагаю вам обновить Gradle.

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