Поддержка версии библиотеки

Я пытаюсь внедрить библиотеки поддержки в свой проект Android Studio.

Если я попробую что-нибудь ниже 20, он говорит: библиотека не должна использовать более низкую версию, а затем версию targetSdk.

Если я использую compile 'com.android.support:support-v4:20', я получаю: Не удалось найти: com.android.support:support-v4:20

Если я использую compile 'com.android.support:support-v7:20.0.+', я получаю: Избегайте использования + в номерах версий, может привести к непредсказуемым и неповторимым сборкам.

Итак, простой вопрос: где я могу найти обновленные, готовые к использованию номера версий, которые работают?

Ответы

Ответ 1

Если я попробую что-нибудь ниже 20, он говорит: библиотека не должна использовать более низкую версию, чем targetSdk.

Это потому, что вы установили targetSdkVersion на что-то большее, чем 19. Если вы сделали это намеренно, отлично. Если вы не сделали этого намеренно, подумайте о том, чтобы отбросить его обратно на 19, и используйте compile 'com.android.support:support-v4:19.1.0' (если вы используете backport of fragments) или compile 'com.android.support:support-v13:19.1.0' (если вы не используете backport of fragments).

Если я использую compile 'com.android.support:support-v4:20', я получаю: Не удалось найти: com.android.support:support-v4:20

Это потому, что в пакете поддержки Android используется семантическое управление версиями X.Y.Z, как и большинство артефактов в репозиториях. 20 не соответствует шаблону X.Y.Z.

Если я использую compile 'com.android.support:support-v7:20.0.+', я получаю: Избегайте использования + в номерах версий, может привести к непредсказуемым и неповторимым сборкам.

Это просто предупреждение. Если вы используете управление версиями для своих файлов проекта, и вы чувствуете, что важно иметь возможность проверить некоторые более ранние версии вашего кода и иметь возможность воспроизвести эту сборку, то использование нотации + не является хорошей идеей, OTOH, если возможность воспроизводить исторические сборки не имеет существенного значения, использование подстановочного символа +, как вы это делаете, гарантирует автоматическое получение обновлений. Наличие + в третьей позиции (Z в X.Y.Z) означает, что вы автоматически получите обновления уровня обновления.

Где я могу найти обновленные, готовые к использованию номера версий, которые работают?

На вашем жестком диске, в $ANDROID_SDK/opt/extras/android/m2repository/com/android/support/$LIBRARY/, где $ANDROID_SDK находится где бы вы ни устанавливались, Android SDK и $LIBRARY - это какая-либо библиотека пакета поддержки Android, в которой вы заинтересованы (например, support-v13).

Ответ 2

Чтобы просмотреть текущий номер версии библиотеки поддержки Android...

  • Android Studio > Инструменты > Android > Менеджер SDK...
  • Дополнительно > Библиотека поддержки Android: см. номер версии, например. (21.0.3).

Для быстрой вставки правильного номера версии, когда в вашем файле gradle у вас есть что-то вроде "com.android.support:appcompat-v7:21.0.+" с "Избегайте использования + в номерах версий".. ', используйте соответствующую инспекцию IntelliJ...

  • Наведите курсор на "com.android.support:appcompat-v7:21.0.+" (где-нибудь в цветной части предупреждения).
  • Alt + Enter > "Заменить на конкретную версию".

В предупреждении планируется включить последний номер конкретной версии. См. Проблема 78737: предложите версию "Избегайте использования + в номерах версий" gradle, чтобы использовать версию, которая в настоящее время используется.

Ответ 3

вы можете получить список версий поддержки-v4 здесь:\sdk\extras\android\m2repository\com\android\support\support-v4

Ответ 4

Это будет работать:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.example.myApp"
        minSdkVersion 19
        targetSdkVersion 20
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:20.0.0')
}