Поддержка версии библиотеки
Я пытаюсь внедрить библиотеки поддержки в свой проект 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')
}