2016-02-12 17 views
12

BenLintOptions'ta severityOverrides nasıl ayarlanır?

android { 
    // ... 

    lintOptions { 
     // http://google.github.io/android-gradle-dsl/1.5/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:severityOverrides 
     severityOverrides { 
      ["MissingTranslation": "warning"] 
     } 

     // ... 

ayarlamak istediğiniz benim app

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     // Android plugin for gradle 
     // http://google.github.io/android-gradle-dsl 
     classpath 'com.android.tools.build:gradle:1.5.0' 

     // ... 

tanımlayan bir Android projesi var ama hata

Error:(34, 0) Gradle DSL method not found: 'severityOverrides()' Possible causes: The project 'android' may be using a version of Gradle that does not contain the method.

severityOverrides ayarlamak için doğru yolu nedir olsun? derlemek ama :app:lintVitalRelease inşa aşamasında üzerinde istenen etkiyi yok


sürümleri:

import com.android.builder.model.LintOptions 
// ... 
severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING] 

ve

import com.android.builder.model.LintOptions 
// ... 
severityOverrides.MissingTranslation = LintOptions.SEVERITY_WARNING 
+0

Eğer Gradle hangi sürümünü kullanıyorsunuz istediğiniz özelliği geçersiz kılmak için (vs ölümcül hatası, ..) Yukarıdaki yöntemlerden birini çağırmak gerektiğini düşünüyorum? – JBaruch

+0

@JBaruch Sürüm 2.10 'gradle/wrapper/gradle-wrapper.properties' içinde ayarlanmış –

+1

Bağladığınız dokümanlar, yazının bir dize ve tamsayı eşlemi olması gerektiğini, bu nedenle ikinci değerin bir tamsayı veya daha uygun bir enum olması gerektiğini belirtir. bir sınıf. – RaGe

cevap

10

Yaptığım şeyi paylaşmak istiyorum.

Şiddet ayarlamak için Yığınları ayarlamak yerine, ayarlamak istediğiniz her bayrak türüne bir yöntem diyebilirsiniz. Senin durumunda

lintOptions { 
    ignore "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... 
    warning "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... 
    error "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... 
    fatal "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... 
    informational "RtlEnabled", "RtlHardcoded", "RtlSymmetry" .... 
} 

, yapabileceğiniz:

lintOptions { 
    warning "MissingTranslation" 
} 

emin değilim o salt okunur özellik olduğundan elle severityOverrides ayarlayabilirsiniz eğer.

Yani, sen gerçekten

+1

Bu kabul edilen cevap olmalı! – vRallev

+1

vRallev ile katılıyorum – Bipi

2

Map<String, Integer> severityOverrides

dokümanlar söylemek bağlantılı ciddiyet için yazın.Yanırımlar iki dizeyi kullanırken Map<String, Integer> olmalıdır. Ayrıca severityOverrides bir yöntem ancak bunun yerine bir özellik olarak görünmüyor, bu yüzden verir küme parantezi {} býrakmalýyýz:

import com.android.builder.model.LintOptions 
lintOptions { 
    severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING] 
} 
+0

Hata aynı kalır. '{[...]}' ile ayar yapmak doğru mu? SeverityOverrides bir "yöntem"? 'SeriousityOverrides = [" MissingTranslation "kullandığımda: LintOptions.SEVERITY_WARNING]' Alıyorum * Hata: (37, 0) [email protected]f33 adresinde 'LintOptions' özelliği bulunamadı. * –

+0

Bir yöntem değil, ben {} 'yi bırakırım. Ayrıca LintOptions'ı içe aktarmak veya tam nitelikli adı kullanmak zorunda kalabilirsiniz. – RaGe

+0

'com.android.builder.model.LintOptions.SEVERITY_WARNING' – RaGe

3

(Sorumun cevabı-cevap, ama bu olarak kullanılan budur lintOptions.severityOverrides çalışamadığında eşdeğer bir değiştirme)

Modülün kökünde aynı yapılandırmada bir lint.xml dosyası bırakın.

<?xml version="1.0" encoding="UTF-8" ?> 
<lint> 
    <issue id="MissingTranslation" severity="warning" /> 
</lint> 

Ayrıca lint.xml aracılığıyla ayar tiftik uyarılarına daha zengin bir API olsun.

+0

Şimdi benim için iş yaptım, teşekkürler –