|
1
|
<?xml version="1.0" encoding="UTF-8"?> |
|
2
|
<issues format="6" by="lint 9.3.1"> |
|
3
|
|
|
4
|
<issue |
|
5
|
id="OldTargetApi" |
|
6
|
severity="Warning" |
|
7
|
message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details." |
|
8
|
category="Correctness" |
|
9
|
priority="6" |
|
10
|
summary="Target SDK attribute is not targeting latest version" |
|
11
|
explanation="When your application or sdk runs on a version of Android that is more recent than your `targetSdk` specifies that it has been tested with, various compatibility modes kick in. This ensures that your application continues to work, but it may look out of place. For example, if the `targetSdk` is less than 14, your app may get an option button in the UI.

To fix this issue, set the `targetSdk` to the highest available value. Then test your app to make sure everything works correctly. You may want to consult the compatibility notes to see what changes apply to each version you are adding support for: https://developer.android.com/reference/android/os/Build.VERSION_CODES.html as well as follow this guide:
https://developer.android.com/distribute/best-practices/develop/target-sdk.html" |
|
12
|
url="https://developer.android.com/distribute/best-practices/develop/target-sdk.html" |
|
13
|
urls="https://developer.android.com/distribute/best-practices/develop/target-sdk.html,https://developer.android.com/reference/android/os/Build.VERSION_CODES.html" |
|
14
|
errorLine1=" targetSdk 34" |
|
15
|
errorLine2=" ~~~~~~~~~~~~"> |
|
16
|
<location |
|
17
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\build.gradle" |
|
18
|
line="12" |
|
19
|
column="9"/> |
|
20
|
</issue> |
|
21
|
|
|
22
|
<issue |
|
23
|
id="UnusedAttribute" |
|
24
|
severity="Warning" |
|
25
|
message="Attribute `autoVerify` is only used in API level 23 and higher (current min is 21)" |
|
26
|
category="Correctness" |
|
27
|
priority="6" |
|
28
|
summary="Attribute unused on older versions" |
|
29
|
explanation="This check finds attributes set in XML files that were introduced in a version newer than the oldest version targeted by your application (with the `minSdkVersion` attribute).

This is not an error; the application will simply ignore the attribute. However, if the attribute is important to the appearance or functionality of your application, you should consider finding an alternative way to achieve the same result with only available attributes, and then you can optionally create a copy of the layout in a layout-vNN folder which will be used on API NN or higher where you can take advantage of the newer attribute.

Note: This check does not only apply to attributes. For example, some tags can be unused too, such as the new `<tag>` element in layouts introduced in API 21." |
|
30
|
errorLine1=" <intent-filter android:autoVerify="true">" |
|
31
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
32
|
<location |
|
33
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\AndroidManifest.xml" |
|
34
|
line="46" |
|
35
|
column="28"/> |
|
36
|
</issue> |
|
37
|
|
|
38
|
<issue |
|
39
|
id="RedundantLabel" |
|
40
|
severity="Warning" |
|
41
|
message="Redundant label can be removed" |
|
42
|
category="Correctness" |
|
43
|
priority="5" |
|
44
|
summary="Redundant label on activity" |
|
45
|
explanation="When an activity does not have a label attribute, it will use the one from the application tag. Since the application has already specified the same label, the label on this activity can be omitted." |
|
46
|
errorLine1=" android:label="@string/app_name">" |
|
47
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
48
|
<location |
|
49
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\AndroidManifest.xml" |
|
50
|
line="19" |
|
51
|
column="13"/> |
|
52
|
</issue> |
|
53
|
|
|
54
|
<issue |
|
55
|
id="AndroidGradlePluginVersion" |
|
56
|
severity="Warning" |
|
57
|
message="A newer version of Gradle than 9.5.0 is available: 9.7.0" |
|
58
|
category="Correctness" |
|
59
|
priority="4" |
|
60
|
summary="Obsolete Android Gradle Plugin Version" |
|
61
|
explanation="This detector looks for usage of the Android Gradle Plugin where the version you are using is not the current stable release. Using older versions is fine, and there are cases where you deliberately want to stick with an older version. However, you may simply not be aware that a more recent version is available, and that is what this lint check helps find." |
|
62
|
errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip" |
|
63
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
64
|
<location |
|
65
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\gradle\wrapper\gradle-wrapper.properties" |
|
66
|
line="5" |
|
67
|
column="17"/> |
|
68
|
</issue> |
|
69
|
|
|
70
|
<issue |
|
71
|
id="GradleDependency" |
|
72
|
severity="Warning" |
|
73
|
message="A newer version of `compileSdk` than 34 is available: 37" |
|
74
|
category="Correctness" |
|
75
|
priority="4" |
|
76
|
summary="Obsolete Gradle Dependency" |
|
77
|
explanation="This detector looks for usages of libraries where the version you are using is not the current stable release. Using older versions is fine, and there are cases where you deliberately want to stick with an older version. However, you may simply not be aware that a more recent version is available, and that is what this lint check helps find." |
|
78
|
errorLine1=" compileSdk 34" |
|
79
|
errorLine2=" ~~~~~~~~~~~~~"> |
|
80
|
<location |
|
81
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\build.gradle" |
|
82
|
line="6" |
|
83
|
column="5"/> |
|
84
|
</issue> |
|
85
|
|
|
86
|
<issue |
|
87
|
id="GradleDependency" |
|
88
|
severity="Warning" |
|
89
|
message="A newer version of androidx.appcompat:appcompat than 1.6.1 is available: 1.8.0" |
|
90
|
category="Correctness" |
|
91
|
priority="4" |
|
92
|
summary="Obsolete Gradle Dependency" |
|
93
|
explanation="This detector looks for usages of libraries where the version you are using is not the current stable release. Using older versions is fine, and there are cases where you deliberately want to stick with an older version. However, you may simply not be aware that a more recent version is available, and that is what this lint check helps find." |
|
94
|
errorLine1=" implementation 'androidx.appcompat:appcompat:1.6.1'" |
|
95
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
96
|
<location |
|
97
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\build.gradle" |
|
98
|
line="51" |
|
99
|
column="20"/> |
|
100
|
</issue> |
|
101
|
|
|
102
|
<issue |
|
103
|
id="GradleDependency" |
|
104
|
severity="Warning" |
|
105
|
message="A newer version of com.google.androidbrowserhelper:androidbrowserhelper than 2.5.0 is available: 2.7.3" |
|
106
|
category="Correctness" |
|
107
|
priority="4" |
|
108
|
summary="Obsolete Gradle Dependency" |
|
109
|
explanation="This detector looks for usages of libraries where the version you are using is not the current stable release. Using older versions is fine, and there are cases where you deliberately want to stick with an older version. However, you may simply not be aware that a more recent version is available, and that is what this lint check helps find." |
|
110
|
errorLine1=" implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.5.0'" |
|
111
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
112
|
<location |
|
113
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\build.gradle" |
|
114
|
line="52" |
|
115
|
column="20"/> |
|
116
|
</issue> |
|
117
|
|
|
118
|
<issue |
|
119
|
id="ExportedService" |
|
120
|
severity="Warning" |
|
121
|
message="Exported service does not require permission" |
|
122
|
category="Security" |
|
123
|
priority="5" |
|
124
|
summary="Exported service does not require permission" |
|
125
|
explanation="Exported services (services which either set `exported=true` or contain an intent-filter and do not specify `exported=false`) should define a permission that an entity must have in order to launch the service or bind to it. Without this, any application can use this service." |
|
126
|
url="https://goo.gle/ExportedService" |
|
127
|
urls="https://goo.gle/ExportedService" |
|
128
|
errorLine1=" <service" |
|
129
|
errorLine2=" ~~~~~~~"> |
|
130
|
<location |
|
131
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\AndroidManifest.xml" |
|
132
|
line="61" |
|
133
|
column="10"/> |
|
134
|
</issue> |
|
135
|
|
|
136
|
<issue |
|
137
|
id="Overdraw" |
|
138
|
severity="Warning" |
|
139
|
message="Possible overdraw: Root element paints background `#111827` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" |
|
140
|
category="Performance" |
|
141
|
priority="3" |
|
142
|
summary="Overdraw: Painting regions more than once" |
|
143
|
explanation="If you set a background drawable on a root view, then you should use a custom theme where the theme background is null. Otherwise, the theme background will be painted first, only to have your custom background completely cover it; this is called "overdraw".

NOTE: This detector relies on figuring out which layouts are associated with which activities based on scanning the Java code, and it's currently doing that using an inexact pattern matching algorithm. Therefore, it can incorrectly conclude which activity the layout is associated with and then wrongly complain that a background-theme is hidden.

If you want your custom background on multiple pages, then you should consider making a custom theme with your custom background and just using that theme instead of a root element background.

Of course it's possible that your custom drawable is translucent and you want it to be mixed with the background. However, you will get better performance if you pre-mix the background with your drawable and use that resulting image or color as a custom theme background instead." |
|
144
|
errorLine1=" android:background="#111827">" |
|
145
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
146
|
<location |
|
147
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\layout\activity_main.xml" |
|
148
|
line="5" |
|
149
|
column="5"/> |
|
150
|
</issue> |
|
151
|
|
|
152
|
<issue |
|
153
|
id="UnusedResources" |
|
154
|
severity="Warning" |
|
155
|
message="The resource `R.layout.activity_main` appears to be unused" |
|
156
|
category="Performance" |
|
157
|
priority="3" |
|
158
|
summary="Unused resources" |
|
159
|
explanation="Unused resources make applications larger and slow down builds.


The unused resource check can ignore tests. If you want to include resources that are only referenced from tests, consider packaging them in a test source set instead.

You can include test sources in the unused resource check by setting the system property `lint.unused-resources.include-tests=true`, and to exclude them (usually for performance reasons), use `lint.unused-resources.exclude-tests=true`.
" |
|
160
|
errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"" |
|
161
|
errorLine2="^"> |
|
162
|
<location |
|
163
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\layout\activity_main.xml" |
|
164
|
line="2" |
|
165
|
column="1"/> |
|
166
|
</issue> |
|
167
|
|
|
168
|
<issue |
|
169
|
id="UnusedResources" |
|
170
|
severity="Warning" |
|
171
|
message="The resource `R.color.colorPrimaryDark` appears to be unused" |
|
172
|
category="Performance" |
|
173
|
priority="3" |
|
174
|
summary="Unused resources" |
|
175
|
explanation="Unused resources make applications larger and slow down builds.


The unused resource check can ignore tests. If you want to include resources that are only referenced from tests, consider packaging them in a test source set instead.

You can include test sources in the unused resource check by setting the system property `lint.unused-resources.include-tests=true`, and to exclude them (usually for performance reasons), use `lint.unused-resources.exclude-tests=true`.
" |
|
176
|
errorLine1=" <color name="colorPrimaryDark">#1D4ED8</color>" |
|
177
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> |
|
178
|
<location |
|
179
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\values\colors.xml" |
|
180
|
line="4" |
|
181
|
column="12"/> |
|
182
|
</issue> |
|
183
|
|
|
184
|
<issue |
|
185
|
id="UnusedResources" |
|
186
|
severity="Warning" |
|
187
|
message="The resource `R.color.colorAccent` appears to be unused" |
|
188
|
category="Performance" |
|
189
|
priority="3" |
|
190
|
summary="Unused resources" |
|
191
|
explanation="Unused resources make applications larger and slow down builds.


The unused resource check can ignore tests. If you want to include resources that are only referenced from tests, consider packaging them in a test source set instead.

You can include test sources in the unused resource check by setting the system property `lint.unused-resources.include-tests=true`, and to exclude them (usually for performance reasons), use `lint.unused-resources.exclude-tests=true`.
" |
|
192
|
errorLine1=" <color name="colorAccent">#2563EB</color>" |
|
193
|
errorLine2=" ~~~~~~~~~~~~~~~~~~"> |
|
194
|
<location |
|
195
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\values\colors.xml" |
|
196
|
line="5" |
|
197
|
column="12"/> |
|
198
|
</issue> |
|
199
|
|
|
200
|
<issue |
|
201
|
id="MonochromeLauncherIcon" |
|
202
|
severity="Warning" |
|
203
|
message="The application adaptive icon is missing a monochrome tag" |
|
204
|
category="Usability:Icons" |
|
205
|
priority="6" |
|
206
|
summary="Monochrome icon is not defined" |
|
207
|
explanation="The system may use the coloring of the user's chosen wallpaper and theme to tint app icons. Providing a `<monochrome>` layer (which will be used for tinting) for every adaptive icon is strongly recommended, otherwise Android 16 QPR 2 and above will simply tint the color version of the icon, which may look unusual. Devices running earlier Android versions will (with no monochrome layer) show the untinted color icon for your app, which will look inconsistent." |
|
208
|
errorLine1="<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">" |
|
209
|
errorLine2="^"> |
|
210
|
<location |
|
211
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher.xml" |
|
212
|
line="2" |
|
213
|
column="1"/> |
|
214
|
</issue> |
|
215
|
|
|
216
|
<issue |
|
217
|
id="MonochromeLauncherIcon" |
|
218
|
severity="Warning" |
|
219
|
message="The application adaptive roundIcon is missing a monochrome tag" |
|
220
|
category="Usability:Icons" |
|
221
|
priority="6" |
|
222
|
summary="Monochrome icon is not defined" |
|
223
|
explanation="The system may use the coloring of the user's chosen wallpaper and theme to tint app icons. Providing a `<monochrome>` layer (which will be used for tinting) for every adaptive icon is strongly recommended, otherwise Android 16 QPR 2 and above will simply tint the color version of the icon, which may look unusual. Devices running earlier Android versions will (with no monochrome layer) show the untinted color icon for your app, which will look inconsistent." |
|
224
|
errorLine1="<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">" |
|
225
|
errorLine2="^"> |
|
226
|
<location |
|
227
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher_round.xml" |
|
228
|
line="2" |
|
229
|
column="1"/> |
|
230
|
</issue> |
|
231
|
|
|
232
|
<issue |
|
233
|
id="ContentDescription" |
|
234
|
severity="Warning" |
|
235
|
message="Missing `contentDescription` attribute on image" |
|
236
|
category="Accessibility" |
|
237
|
priority="3" |
|
238
|
summary="Image without `contentDescription`" |
|
239
|
explanation="Non-textual widgets like ImageViews and ImageButtons should use the `contentDescription` attribute to specify a textual description of the widget such that screen readers and other accessibility tools can adequately describe the user interface.

Note that elements in application screens that are purely decorative and do not provide any content or enable a user action should not have accessibility content descriptions. In this case, set their descriptions to `@null`. If your app's minSdkVersion is 16 or higher, you can instead set these graphical elements' `android:importantForAccessibility` attributes to `no`.

Note that for text fields, you should not set both the `hint` and the `contentDescription` attributes since the hint will never be shown. Just set the `hint`." |
|
240
|
url="https://developer.android.com/guide/topics/ui/accessibility/apps#special-cases" |
|
241
|
urls="https://developer.android.com/guide/topics/ui/accessibility/apps#special-cases" |
|
242
|
errorLine1=" <ImageView" |
|
243
|
errorLine2=" ~~~~~~~~~"> |
|
244
|
<location |
|
245
|
file="C:\Users\jhust\Documents\jcr-guide-pro-source\android\app\src\main\res\layout\activity_main.xml" |
|
246
|
line="7" |
|
247
|
column="6"/> |
|
248
|
</issue> |
|
249
|
|
|
250
|
</issues> |