2015-08-29 3 views
2

Просто создало новое приложение для Android в Studio, и я установил compileSdkVersion и minSdkVersion на 16, потому что я хочу убедиться, что я не использую никаких функций в более поздних версиях Android случайно.Android - изменение compileSdkVersion на 16 приводит к ошибкам компиляции (gradle)

Однако эта линия в моей build.gradle, кажется, приводит к ошибкам компиляции после изменения этого:

compile 'com.android.support:appcompat-v7:23.0.0' 

Когда я закомментировать, компиляция будет успешной. Мне не нужна эта линия? Я думал, что это необходимо для ActionBar и т. Д.

Есть ли у меня неправильная идея сменить compileSdkVersion на 16, чтобы убедиться, что я не использую новые функции?

+1

Какая ошибка. –

+0

Я получаю массу таких ошибок: Ошибка: (2) Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени «android: TextAppearance.Material.Inverse». Ошибка: (123, 21) Ресурс не найден, который соответствует указанному имени: attr 'android: colorPrimaryDark'. – Ken

+0

Вы должны использовать API23 для компиляции. Вы не можете использовать API16. http://stackoverflow.com/questions/32102553/android-studio-not-working-while-building-app-using-appcompat-v23-and-api21/32103832#32103832 –

ответ

2

Я считаю, что вы хотите поддержать SDk версию 16+, чтобы сделать это, просто установите minSdkVersion 16 и использовать compileSdkVersion, как последняя, ​​то есть 23

Делая это, если вы используете новые функции, появившиеся в версии 17+ , ошибка/предупреждение будет отображаться при компиляции или при редактировании кода в Android Studio.

Edit: некоторые подробности

Одна из причин, почему вы должны это сделать, потому что вы можете иметь что-то подобное в вашем коде:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
} 

На самом деле это также, как поддержка библиотека работа.

http://developer.android.com/training/basics/supporting-devices/platforms.html

1

Вы должны обновить Android Platform SDK до последней Android 6,0 ​​API 23.

я получил ту же самую проблему, потому что я только что обновил библиотеку поддержки из SDK Manager, и не сделал обновите платформу SDK.

Check this out http://img.techentice.com/img/Android-adk-android-6.jpg



Или'com.android.support:appcompat-v7:22.2.1' вместо загрузки SDK платформы

1

However, this line in my build.gradle seems to lead to compilation errors after changing these: compile 'com.android.support:appcompat-v7:23.0.0'

Это происходит потому, что поддержка библиотек v23 требуют API23 для компиляции проекта.

В вашем build.gradle изменить compileSdkVersion на .

compileSdkVersion 23 

When I comment it out, compilation will be successful. Do I not need this line? I thought it was necessary for ActionBar, etc.

Использование minsdk = 16 Я предлагаю вам с помощью AppCompat библиотеки. Виджет, такой как панель инструментов, и все design support library (CollapsingToolbar, Snackbar ...) требуют appCompat.

Также, если вы хотите создать резервную копию конструкции материала в api16, вам это нужно.

1

, если вы хотите скомпилировать с последней версией, чем обновление & установить свой SDK до последнего, который в это время API 23.

Если вы действительно хотите компилировать & обеспечить поддержку вашего приложения на API 16 & хотят не добавить поддержку более поздней версии (которая не имеет смысла для меня, может быть для вас его хорошо), то согласно выписке

I set compileSdkVersion and minSdkVersion to 16, because I want to make sure that I don't use any features in later versions of Android

затем установите compileSdkVersion до 16, minSdkVersion до 16, targetSdkVersion 16

& зависимостей как компиляции '' com.android.support:appcompat-v6:16.0.0

проверить API 16 раздел в SDK. он должен быть установить

enter image description here

И вы build.gradle должны быть, как это

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 16 
    buildToolsVersion "16.0.0" 

    defaultConfig { 
     applicationId "com.example.inzi.mapofcontacts" 
     minSdkVersion 16 
     targetSdkVersion 16 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v6:16.0.0' 
} 

По вашему вопросу может помочь вам.

Смежные вопросы