Overview
| Correctness | |
| 8 | warning DefaultLocale: Implied default locale in case conversion |
| 1 | warning OldTargetApi: Target SDK attribute is not targeting latest version |
| 1 | warning AndroidGradlePluginVersion: Obsolete Android Gradle Plugin Version |
| 15 | warning GradleDependency: Obsolete Gradle Dependency |
| 1 | warning GradleDynamicVersion: Gradle Dynamic Version |
| 6 | warning NewerVersionAvailable: Newer Library Versions Available |
| Performance | |
| 3 | warning NotifyDataSetChanged: Invalidating All RecyclerView Data |
| 1 | warning
DisableBaselineAlignment: Missing baselineAligned attribute |
| 6 | warning Overdraw: Overdraw: Painting regions more than once |
| 26 | warning UnusedResources: Unused resources |
| Usability:Icons | |
| 3 | warning IconLocation: Image defined in density-independent drawable folder |
| 5 | warning IconDuplicates: Duplicated icons under different names |
| Accessibility | |
| 5 | warning
ContentDescription: Image without contentDescription |
| 2 | warning KeyboardInaccessibleWidget: Keyboard inaccessible widget |
| 2 | warning LabelFor: Missing accessibility label |
| Internationalization | |
| 27 | warning SetTextI18n: TextView Internationalization |
| 60 | warning HardcodedText: Hardcoded text |
| Included Additional Checks (31) | |
| Disabled Checks (40) |
Implied default locale in case conversion
../../src/main/java/com/example/medcuida/pro/MainActivity.java:331:
328 db.collection("consultas").document(consultaId) 329 .update("status", newStatus) 330 .addOnSuccessListener( 331 aVoid -> Toast.makeText(this, "Consulta " + newStatus.toLowerCase(), Toast.LENGTH_SHORT).show()) 332 .addOnFailureListener( 333 e -> Toast.makeText(this, "Erro ao atualizar consulta", Toast.LENGTH_SHORT).show()); 334 }../../src/main/java/com/example/medcuida/pro/MainActivity.java:433:
430 boolean belongsToDoctor = false; 431 432 if (c.getType() != null && !doctorName.isEmpty() 433 && c.getType().toLowerCase().contains(doctorName.toLowerCase().split(" ")[0])) { 434 belongsToDoctor = true; 435 } else if (c.getMedicoId() != null && c.getMedicoId().equals(currentMedicoId)) { 436 belongsToDoctor = true;../../src/main/java/com/example/medcuida/pro/MainActivity.java:433:
430 boolean belongsToDoctor = false; 431 432 if (c.getType() != null && !doctorName.isEmpty() 433 && c.getType().toLowerCase().contains(doctorName.toLowerCase().split(" ")[0])) { 434 belongsToDoctor = true; 435 } else if (c.getMedicoId() != null && c.getMedicoId().equals(currentMedicoId)) { 436 belongsToDoctor = true;../../src/main/java/com/example/medcuida/pro/MainActivity.java:508:
505 boolean belongsToDoctor = false; 506 507 if (c.getType() != null && !doctorName.isEmpty() 508 && c.getType().toLowerCase().contains(doctorName.toLowerCase().split(" ")[0])) { 509 belongsToDoctor = true; 510 } else if (c.getMedicoId() != null && c.getMedicoId().equals(currentMedicoId)) { 511 belongsToDoctor = true;../../src/main/java/com/example/medcuida/pro/MainActivity.java:508:
505 boolean belongsToDoctor = false; 506 507 if (c.getType() != null && !doctorName.isEmpty() 508 && c.getType().toLowerCase().contains(doctorName.toLowerCase().split(" ")[0])) { 509 belongsToDoctor = true; 510 } else if (c.getMedicoId() != null && c.getMedicoId().equals(currentMedicoId)) { 511 belongsToDoctor = true;../../src/main/java/com/example/medcuida/pro/ui/adapters/PacienteAdapter.java:42:
39 if (text.isEmpty()) { 40 pacientesList.addAll(pacientesListFull); 41 } else { 42 text = text.toLowerCase().trim(); 43 for (Paciente item : pacientesListFull) { 44 if ((item.getNome() != null && item.getNome().toLowerCase().contains(text)) || 45 (item.getEmail() != null && item.getEmail().toLowerCase().contains(text))) {../../src/main/java/com/example/medcuida/pro/ui/adapters/PacienteAdapter.java:44:
41 } else { 42 text = text.toLowerCase().trim(); 43 for (Paciente item : pacientesListFull) { 44 if ((item.getNome() != null && item.getNome().toLowerCase().contains(text)) || 45 (item.getEmail() != null && item.getEmail().toLowerCase().contains(text))) { 46 pacientesList.add(item); 47 }../../src/main/java/com/example/medcuida/pro/ui/adapters/PacienteAdapter.java:45:
42 text = text.toLowerCase().trim(); 43 for (Paciente item : pacientesListFull) { 44 if ((item.getNome() != null && item.getNome().toLowerCase().contains(text)) || 45 (item.getEmail() != null && item.getEmail().toLowerCase().contains(text))) { 46 pacientesList.add(item); 47 } 48 }
DefaultLocale
Correctness
Warning
Priority 6/10
Target SDK attribute is not targeting latest version
../../build.gradle:13:
10 defaultConfig { 11 applicationId "com.example.medcuida.pro" 12 minSdk 24 13 targetSdk 35 14 versionCode 1 15 versionName "1.0"
OldTargetApi
Correctness
Warning
Priority 6/10
Obsolete Android Gradle Plugin Version
../../../gradle/wrapper/gradle-wrapper.properties:3:
1 distributionBase=GRADLE_USER_HOME 2 distributionPath=wrapper/dists 3 distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip 4 networkTimeout=10000 5 validateDistributionUrl=true 6 zipStoreBase=GRADLE_USER_HOME
AndroidGradlePluginVersion
Correctness
Warning
Priority 4/10
Obsolete Gradle Dependency
../../build.gradle:8:
5 6 android { 7 namespace 'com.example.medcuida.pro' 8 compileSdk 35 9 10 defaultConfig { 11 applicationId "com.example.medcuida.pro"../../build.gradle:39:
36 } 37 38 dependencies { 39 implementation 'androidx.appcompat:appcompat:1.6.1' 40 implementation 'com.google.android.material:material:1.11.0' 41 implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 42 implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'../../build.gradle:40:
37 38 dependencies { 39 implementation 'androidx.appcompat:appcompat:1.6.1' 40 implementation 'com.google.android.material:material:1.11.0' 41 implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 42 implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0' 43 implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'../../build.gradle:41:
38 dependencies { 39 implementation 'androidx.appcompat:appcompat:1.6.1' 40 implementation 'com.google.android.material:material:1.11.0' 41 implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 42 implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0' 43 implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0' 44 implementation 'androidx.navigation:navigation-fragment:2.7.7'../../build.gradle:42:
39 implementation 'androidx.appcompat:appcompat:1.6.1' 40 implementation 'com.google.android.material:material:1.11.0' 41 implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 42 implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0' 43 implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0' 44 implementation 'androidx.navigation:navigation-fragment:2.7.7' 45 implementation 'androidx.navigation:navigation-ui:2.7.7'+ 10 More Occurrences...
GradleDependency
Correctness
Warning
Priority 4/10
Gradle Dynamic Version
../../build.gradle:62:
59 implementation 'com.google.android.gms:play-services-location:21.0.1' 60 61 // Biblioteca oficial do Google AI para Java/Android 62 implementation 'com.google.ai.client.generativeai:generativeai:+' 63 64 // Necessário para lidar com operações assíncronas (Guava) 65 implementation 'com.google.guava:guava:31.1-android'
GradleDynamicVersion
Correctness
Warning
Priority 4/10
Newer Library Versions Available
../../build.gradle:65:
62 implementation 'com.google.ai.client.generativeai:generativeai:+' 63 64 // Necessário para lidar com operações assíncronas (Guava) 65 implementation 'com.google.guava:guava:31.1-android' 66 67 // Para chamadas de rede e JSON 68 implementation 'com.squareup.retrofit2:retrofit:2.9.0'../../build.gradle:68:
65 implementation 'com.google.guava:guava:31.1-android' 66 67 // Para chamadas de rede e JSON 68 implementation 'com.squareup.retrofit2:retrofit:2.9.0' 69 implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 70 implementation 'com.squareup.okhttp3:okhttp:4.10.0'../../build.gradle:69:
66 67 // Para chamadas de rede e JSON 68 implementation 'com.squareup.retrofit2:retrofit:2.9.0' 69 implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 70 implementation 'com.squareup.okhttp3:okhttp:4.10.0' 71 72 // Firebase BoM../../build.gradle:70:
67 // Para chamadas de rede e JSON 68 implementation 'com.squareup.retrofit2:retrofit:2.9.0' 69 implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 70 implementation 'com.squareup.okhttp3:okhttp:4.10.0' 71 72 // Firebase BoM 73 implementation platform('com.google.firebase:firebase-bom:32.7.2')../../build.gradle:81:
78 implementation 'com.google.firebase:firebase-storage' 79 80 // Glide for image loading 81 implementation 'com.github.bumptech.glide:glide:4.16.0' 82 annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' 83 }../../build.gradle:82:
79 80 // Glide for image loading 81 implementation 'com.github.bumptech.glide:glide:4.16.0' 82 annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' 83 }
NewerVersionAvailable
Correctness
Warning
Priority 4/10
Invalidating All RecyclerView Data
../../src/main/java/com/example/medcuida/pro/ui/adapters/ConsultaAdapter.java:40:
37 38 public void setConsultas(List<Consulta> consultas) { 39 this.consultasList = consultas; 40 notifyDataSetChanged(); 41 } 42 43 @NonNull../../src/main/java/com/example/medcuida/pro/ui/adapters/PacienteAdapter.java:34:
31 public void setPacientes(List<Paciente> pacientes) { 32 this.pacientesList = new ArrayList<>(pacientes); 33 this.pacientesListFull = new ArrayList<>(pacientes); 34 notifyDataSetChanged(); 35 } 36 37 public void filter(String text) {../../src/main/java/com/example/medcuida/pro/ui/adapters/PacienteAdapter.java:50:
47 } 48 } 49 } 50 notifyDataSetChanged(); 51 } 52 53 @NonNull
NotifyDataSetChanged
Performance
Warning
Priority 8/10
Missing baselineAligned attribute
../../src/main/res/layout/activity_editar_perfil.xml:107:
104 android:inputType="none" /> 105 </com.google.android.material.textfield.TextInputLayout> 106 107 <LinearLayout 108 android:layout_width="match_parent" 109 android:layout_height="wrap_content" 110 android:orientation="horizontal"
DisableBaselineAlignment
Performance
Warning
Priority 3/10
Overdraw: Painting regions more than once
../../src/main/res/layout/activity_detalhe_paciente.xml:7:
4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:background="@color/background_color" 8 tools:context=".DetalhePacienteActivity"> 9../../src/main/res/layout/activity_editar_perfil.xml:7:
4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:fillViewport="true" 7 android:background="#FAFAFA"> 8 9 <LinearLayout 10 android:layout_width="match_parent"../../src/main/res/layout/activity_forgot_password.xml:8:
5 android:orientation="vertical" 6 android:gravity="center" 7 android:padding="24dp" 8 android:background="@color/background_color"> 9 10 <ImageView 11 android:layout_width="187dp"../../src/main/res/layout/activity_login.xml:7:
4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:fillViewport="true" 7 android:background="@color/background_color"> 8 9 <LinearLayout 10 android:layout_width="match_parent"../../src/main/res/layout/activity_main.xml:6:
3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:background="@color/background_color"> 7 8 9 <LinearLayout../../src/main/res/layout/activity_register.xml:7:
4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:fillViewport="true" 7 android:background="@color/background_color"> 8 9 <LinearLayout 10 android:layout_width="match_parent"
Overdraw
Performance
Warning
Priority 3/10
Unused resources
../../src/main/res/menu/bottom_nav_menu.xml:2:
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"> 3 4 <item 5 android:id="@+id/navigation_home"../../src/main/res/drawable/btn_outline_error.xml:2:
1 <?xml version="1.0" encoding="utf-8"?> 2 <ripple xmlns:android="http://schemas.android.com/apk/res/android" 3 android:color="#40B00020"> 4 <item> 5 <shape android:shape="rectangle">../../src/main/res/drawable/btn_outline_primary.xml:2:
1 <?xml version="1.0" encoding="utf-8"?> 2 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 3 <stroke android:width="1dp" android:color="?attr/colorPrimary" /> 4 <corners android:radius="28dp" /> 5 <solid android:color="@android:color/transparent" />../../src/main/res/drawable/circle_bg_large.xml:2:
1 <?xml version="1.0" encoding="utf-8"?> 2 <shape xmlns:android="http://schemas.android.com/apk/res/android" 3 android:shape="oval"> 4 <solid android:color="@color/primary_light_color" /> 5 </shape>../../src/main/res/values/colors.xml:18:
15 <color name="error_color">#EF4444</color> <!-- Red 500 --> 16 17 <!-- Standard overrides --> 18 <color name="purple_200">#93C5FD</color> 19 <color name="purple_500">#3B82F6</color> 20 <color name="purple_700">#1D4ED8</color> 21 <color name="teal_200">#60A5FA</color>+ 21 More Occurrences...
UnusedResources
Performance
Warning
Priority 3/10
Image defined in density-independent drawable folder
IconLocation
Icons
Usability
Warning
Priority 5/10
Duplicated icons under different names
../../src/main/res/mipmap-hdpi/ic_launcher_round.png:
../../src/main/res/mipmap-mdpi/ic_launcher_round.png:
../../src/main/res/mipmap-xhdpi/ic_launcher_round.png:
../../src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
../../src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
|
|
|
|
|
|
|
|
|
|
IconDuplicates
Icons
Usability
Warning
Priority 3/10
Image without contentDescription
../../src/main/res/layout/activity_editar_perfil.xml:15:
12 android:orientation="vertical" 13 android:padding="24dp"> 14 15 <ImageButton 16 android:id="@+id/btn_voltar" 17 android:layout_width="48dp" 18 android:layout_height="48dp"../../src/main/res/layout/activity_forgot_password.xml:10:
7 android:padding="24dp" 8 android:background="@color/background_color"> 9 10 <ImageView 11 android:layout_width="187dp" 12 android:layout_height="177dp" 13 android:layout_marginBottom="24dp"../../src/main/res/layout/activity_main.xml:189:
186 android:padding="12dp" 187 android:gravity="center_vertical"> 188 189 <ImageButton 190 android:id="@+id/btn_prev_day_hist" 191 android:layout_width="48dp" 192 android:layout_height="48dp"../../src/main/res/layout/activity_main.xml:225:
222 android:textColor="@color/text_secondary"/> 223 </LinearLayout> 224 225 <ImageButton 226 android:id="@+id/btn_next_day_hist" 227 android:layout_width="48dp" 228 android:layout_height="48dp"../../src/main/res/layout/activity_main.xml:234:
231 android:background="?attr/selectableItemBackgroundBorderless" 232 app:tint="?attr/colorPrimary" /> 233 234 <ImageButton 235 android:id="@+id/btn_go_today_icon_hist" 236 android:layout_width="48dp" 237 android:layout_height="48dp"
ContentDescription
Accessibility
Warning
Priority 3/10
Keyboard inaccessible widget
../../src/main/res/layout/activity_editar_perfil.xml:126:
123 android:layout_height="wrap_content" 124 android:hint="Início" 125 android:focusable="false" 126 android:clickable="true" 127 android:inputType="none" /> 128 </com.google.android.material.textfield.TextInputLayout>../../src/main/res/layout/activity_editar_perfil.xml:143:
140 android:layout_height="wrap_content" 141 android:hint="Fim" 142 android:focusable="false" 143 android:clickable="true" 144 android:inputType="none" /> 145 </com.google.android.material.textfield.TextInputLayout> 146 </LinearLayout>
KeyboardInaccessibleWidget
Accessibility
Warning
Priority 3/10
Missing accessibility label
../../src/main/res/layout/activity_editar_perfil.xml:100:
97 android:layout_marginBottom="16dp" 98 android:hint="Sexo"> 99 100 <AutoCompleteTextView 101 android:id="@+id/edit_gender" 102 android:layout_width="match_parent" 103 android:layout_height="wrap_content"../../src/main/res/layout/activity_register.xml:84:
81 android:layout_marginBottom="16dp" 82 android:hint="Sexo"> 83 84 <AutoCompleteTextView 85 android:id="@+id/gender_auto_complete" 86 android:layout_width="match_parent" 87 android:layout_height="wrap_content"
LabelFor
Accessibility
Warning
Priority 2/10
TextView Internationalization
../../src/main/java/com/example/medcuida/pro/ui/adapters/ConsultaAdapter.java:90:
87 ((com.google.android.material.card.MaterialCardView)itemView).setStrokeWidth(1); 88 String nome = consulta.getPacienteNome(); 89 if (nome == null && consulta.getPacienteId() != null && !consulta.getPacienteId().isEmpty()) { 90 textPacienteNome.setText("A carregar nome..."); 91 com.google.firebase.firestore.FirebaseFirestore.getInstance() 92 .collection("utilizadores").document(consulta.getPacienteId()) 93 .get()../../src/main/java/com/example/medcuida/pro/ui/adapters/ConsultaAdapter.java:102:
99 consulta.setPacienteNome(n); 100 textPacienteNome.setText(n); 101 } else { 102 textPacienteNome.setText("Paciente s/ Nome"); 103 } 104 } else { 105 textPacienteNome.setText("Paciente Apagado");../../src/main/java/com/example/medcuida/pro/ui/adapters/ConsultaAdapter.java:105:
102 textPacienteNome.setText("Paciente s/ Nome"); 103 } 104 } else { 105 textPacienteNome.setText("Paciente Apagado"); 106 } 107 }); 108 } else {../../src/main/java/com/example/medcuida/pro/DetalhePacienteActivity.java:76:
73 String email = getStringFromDoc(document, "email"); 74 75 nomePaciente = nome; 76 tvNome.setText("Nome: " + (nome != null ? nome : "N/D")); 77 tvIdade.setText("Idade: " + (idade != null ? idade : "N/D")); 78 tvNumeroUtente.setText("Nº Utente: " + (numUtente != null ? numUtente : "N/D")); 79 tvSexo.setText("Sexo: " + (sexo != null ? sexo : "N/D"));../../src/main/java/com/example/medcuida/pro/DetalhePacienteActivity.java:76:
73 String email = getStringFromDoc(document, "email"); 74 75 nomePaciente = nome; 76 tvNome.setText("Nome: " + (nome != null ? nome : "N/D")); 77 tvIdade.setText("Idade: " + (idade != null ? idade : "N/D")); 78 tvNumeroUtente.setText("Nº Utente: " + (numUtente != null ? numUtente : "N/D")); 79 tvSexo.setText("Sexo: " + (sexo != null ? sexo : "N/D"));+ 22 More Occurrences...
SetTextI18n
Internationalization
Warning
Priority 6/10
Hardcoded text
../../src/main/res/layout/activity_detalhe_paciente.xml:22:
19 app:tint="@color/text_primary" 20 app:layout_constraintTop_toTopOf="parent" 21 app:layout_constraintStart_toStartOf="parent" 22 android:contentDescription="Sair" 23 android:elevation="4dp" /> 24 25 <ScrollView../../src/main/res/layout/activity_detalhe_paciente.xml:57:
54 <TextView 55 android:layout_width="wrap_content" 56 android:layout_height="wrap_content" 57 android:text="Informação Pessoal" 58 android:textStyle="bold" 59 android:textSize="20sp" 60 android:textColor="@color/text_primary"../../src/main/res/layout/activity_detalhe_paciente.xml:67:
64 android:id="@+id/tv_nome_paciente" 65 android:layout_width="wrap_content" 66 android:layout_height="wrap_content" 67 android:text="Nome: A carregar..." 68 android:textSize="16sp" 69 android:layout_marginBottom="8dp"/>../../src/main/res/layout/activity_detalhe_paciente.xml:75:
72 android:id="@+id/tv_idade_paciente" 73 android:layout_width="wrap_content" 74 android:layout_height="wrap_content" 75 android:text="Idade: A carregar..." 76 android:textSize="16sp" 77 android:layout_marginBottom="8dp"/>../../src/main/res/layout/activity_detalhe_paciente.xml:83:
80 android:id="@+id/tv_numero_utente" 81 android:layout_width="wrap_content" 82 android:layout_height="wrap_content" 83 android:text="Nº Utente: A carregar..." 84 android:textSize="16sp" 85 android:layout_marginBottom="8dp"/>+ 55 More Occurrences...
HardcodedText
Internationalization
Warning
Priority 5/10
Included Additional Checks
This card lists all the extra checks run by lint, provided from libraries,
build configuration and extra flags. This is included to help you verify
whether a particular check is included in analysis when configuring builds.
(Note that the list does not include the hundreds of built-in checks into lint,
only additional ones.)
Disabled Checks
One or more issues were not run by lint, either
because the check is not enabled by default, or because
it was disabled with a command line flag or via one or
more
lint.xml configuration files in the project directories.
Suppressing Warnings and Errors
Lint errors can be suppressed in a variety of ways:
1. With a
2. With a
3. With a //noinspection comment in the source code
4. With ignore flags specified in the
5. With a
6. With a
7. With the --ignore flag passed to lint.
To suppress a lint warning with an annotation, add a
To suppress a lint warning with a comment, add a
To suppress a lint warning in an XML file, add a
To suppress a lint warning in a
Here we specify a comma separated list of issue id's after the disable command. You can also use
To suppress lint warnings with a configuration XML file, create a file named
The format of the
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:
For more information, see https://developer.android.com/studio/write/lint.html#config
1. With a
@SuppressLint annotation in the Java code2. With a
tools:ignore attribute in the XML file3. With a //noinspection comment in the source code
4. With ignore flags specified in the
build.gradle file, as explained below5. With a
lint.xml configuration file in the project6. With a
lint.xml configuration file passed to lint via the --config flag7. With the --ignore flag passed to lint.
To suppress a lint warning with an annotation, add a
@SuppressLint("id") annotation on the class, method or variable declaration closest to the warning instance you want to disable. The id can be one or more issue id's, such as "UnusedResources" or {"UnusedResources","UnusedIds"}, or it can be "all" to suppress all lint warnings in the given scope.To suppress a lint warning with a comment, add a
//noinspection id comment on the line before the statement with the error.To suppress a lint warning in an XML file, add a
tools:ignore="id" attribute on the element containing the error, or one of its surrounding elements. You also need to define the namespace for the tools prefix on the root element in your document, next to the xmlns:android declaration:xmlns:tools="http://schemas.android.com/tools"To suppress a lint warning in a
build.gradle file, add a section like this:
android {
lintOptions {
disable 'TypographyFractions','TypographyQuotes'
}
}
Here we specify a comma separated list of issue id's after the disable command. You can also use
warning or error instead of disable to change the severity of issues.To suppress lint warnings with a configuration XML file, create a file named
lint.xml and place it at the root directory of the module in which it applies.The format of the
lint.xml file is something like the following:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!-- Ignore everything in the test source set -->
<issue id="all">
<ignore path="\*/test/\*" />
</issue>
<!-- Disable this given check in this project -->
<issue id="IconMissingDensityFolder" severity="ignore" />
<!-- Ignore the ObsoleteLayoutParam issue in the given files -->
<issue id="ObsoleteLayoutParam">
<ignore path="res/layout/activation.xml" />
<ignore path="res/layout-xlarge/activation.xml" />
<ignore regexp="(foo|bar)\.java" />
</issue>
<!-- Ignore the UselessLeaf issue in the given file -->
<issue id="UselessLeaf">
<ignore path="res/layout/main.xml" />
</issue>
<!-- Change the severity of hardcoded strings to "error" -->
<issue id="HardcodedText" severity="error" />
</lint>
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:
$ lint --ignore UnusedResources,UselessLeaf /my/project/pathFor more information, see https://developer.android.com/studio/write/lint.html#config












