Używam Android Studio 0.9.3 z Gradle 'com.android.tools.build:gradle:0.14.+'
zastosuj wtyczkę: „com.android.application”
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
applicationId "xxx.xxx.xxx"
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "1.0.11"
}
signingConfigs{
releaseConfig{
storeFile file("xxxxxxx")
storePassword = "xxxx"
keyAlias = "xxxx"
keyPassword = "xxxx"
}
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.releaseConfig
// adds version to file name
applicationVariants.all { variant ->
def file = variant.outputFile
variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// You must install or update the Support Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
// You must install or update the Google Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
compile 'com.android.support:support-v4:19.+'
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.mcxiaoke.volley:library:1.0.6'
compile 'com.google.code.gson:gson:2.2.+'
}
Projekt skompilowany wcześniej bez żadnych zmian w tym pliku, otrzymuję:
Błąd: (26, 0) Nie znaleziono metody Gradle DSL: 'runProguard ()'
Jak to naprawić?
Odpowiedzi:
O ile wiem,
runProguard
został zastąpionyminifyEnabled
. Nadal nie jestem pewien, jak zdefiniować konfigurację dla proguard, ale wyszukiwarka Google powinna pomóc ci to sprawdzić.Edytować:
Do
outFile
przeczytania tutaj: https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0 jak oni to robią.Krótko mówiąc: używali bardziej złożonej wersji:
źródło
applicationVariants.all { variant ->
Zamiast używać
runProguard
w pliku gradle, spróbuj użyćminifyEnabled
. To powinno rozwiązać problem.runProguard
jest przestarzały i wkrótce przestanie działać.EDYTOWAĆ
Aby go użyć
minifyEnabled
, należy zaktualizować gradle do wersji 2.2 lub nowszej.źródło
minifyEnabled
(nieminifyEnable
)Może pomóc zmiana w pliku build.gradle aplikacji:
stary:
Nowy:
źródło
Jeśli używasz wersji 0.14.0 lub wyższej
gradle
wtyczki, powinieneś zamienić „runProguard
” na „minifyEnabled
” w swoichbuild.gradle
plikach.Po prostu dodaj to.
minifyEnabled false
Oznacza, że nazwy typów kompilacji nie mogą być main ani androidTest (jest to wymuszane przez wtyczkę) i muszą być dla siebie unikalne.Nowa wersja
Gradle
wtyczki Androida może automatycznie usuwać nieużywane zasoby. Największą zaletą jest to, że usuwa nieużywane zasoby nie tylko z własnego kodu, ale co ważniejsze z bibliotek , z których korzystasz (np. Tam, gdzie są zasoby do obsługi funkcji, których w rzeczywistości nie używasz w aplikacji).źródło
Począwszy od wersji Gradle 0.14.4 , błędy te są zgłaszane jako błędy czasu kompilacji.
Więc trzeba wymienić
runProguard false/true
zminifyEnabled false/true
Zmiany są wymienione na blogu programistów Androida .
źródło
Migracja projektów Gradle do wersji 1.0.0 wymaga łatwej zmiany nazwy, wszystko jest opisane tutaj: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0
W przypadku proguard możesz po prostu zmienić nazwę 'runProguard' => 'minifyEnabled', inne patrz poniżej:
źródło
Wynika to z aktualizacji narzędzi gradle dla Androida do wersji 0.14.3. W swoim pliku zamień „build.gradle”
przez:
Dopóki tego nie naprawią…
źródło
Nazwa runProguard została zmieniona na minifyEnabled w wersji 0.14.0 (2014/10/31) Gradle.
Aby to naprawić, musisz zmienić runProguard na minifyEnabled w pliku build.gradle projektu.
źródło