У меня есть приложение для Android 4.x со стилем Holo. Теперь я хочу добавить поддержку стиля материала, и я хотел бы иметь стиль материала как на Android 5, так и на Android 4.x (я читал, что это возможно с AppCompat v21). Я прочитал этот пост о «миграции» с Holo на Material: http://android-developers.blogspot.sg/2014/10/appcompat-v21-material-design-for-pre.html
Итак, я изменил свой старый файл «build.grandle» с этого:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 18
versionName "1.3.1"
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.google.android.gms:play-services:4.4.52'
compile 'com.github.fernandodev.easyratingdialog:easyratingdialog:+'
}
к этому:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode 19
versionName "2.0.0"
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.google.android.gms:play-services:6.1.71'
compile 'com.github.fernandodev.easyratingdialog:easyratingdialog:+'
compile 'com.anjlab.android.iab.v3:library:1.0.+@aar'
}
Я изменил JDK6 на JDK7 (потому что это нужно SDK21), выбрал API21 как «скомпилировать версию SDK» и создать новый XML-файл «values/themes.xml»:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- Set AppCompat’s actionBarStyle -->
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">#8bc34a</item>
<item name="colorPrimaryDark">#259b24</item>
<!-- The rest of your attributes -->
</style>
</resources>
Теперь, когда я пытаюсь запустить свое приложение на своем устройстве (с Android 4.4, в данный момент у меня нет устройства с Android 5), Android Studio, прежде чем пытаться установить его, попросит меня удалить старую версию (но есть не старая версия.Я удалил ее и удалил всю папку). Когда я подтверждаю, я получаю сообщение об ошибке:
Uploading file
local path: C:\MYAPP\app\build\outputs\apk\app-debug.apk
remote path: /data/local/tmp/com.myname.myapp
Installing com.martinzone.topotafmobile
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myname.myapp"
pkg: /data/local/tmp/com.myname.myapp
Failure [INSTALL_FAILED_DEXOPT]
Я также пытался «очистить» свой проект, но в этом случае я получаю эту ошибку:
Uploading file
local path: C:\MYAPP\app\build\outputs\apk\app-debug.apk
remote path: /data/local/tmp/com.myname.myapp
Installing com.myname.myapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myname.myapp"
pkg: /data/local/tmp/com.myname.myapp
Failure [INSTALL_FAILED_UID_CHANGED]
Есть идеи? Как я могу это решить? Как я могу добавить поддержку Material Style, работающую на Android 4 и Android 5?