Kiwix:Android.ui.preparing files/fr
In fact, on https://github.com/kiwix/kiwix-android/actions/runs/4374247118/jobs/7653435788
I see that this is NOT that Linter warning (which is shown only in your IDE editor) that blocks your build.
You have a real error in the XML files with unsupported attributes. I see serious things like:
> Task :app:processDebugManifest package="org.kiwix.kiwixmobile" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. package="org.kiwix.kiwixmobile" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. package="org.kiwix.kiwixmobile" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. package="org.kiwix.kiwixmobile" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. [...snipped...] > Task :app:processDebugAndroidTestManifest package="org.kiwix.kiwixmobile" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/app/src/androidTest/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. [...snipped...] > Task :custom:processCustomexampleDebugMainManifest package="org.kiwix.kiwixmobile.custom" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/custom/src/main/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. > Task :custom:processCustomexampleDebugManifest package="org.kiwix.kiwixcustomcustomexample" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/custom/build/intermediates/merged_manifest/customexampleDebug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. package="org.kiwix.kiwixcustomcustomexample" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/custom/build/intermediates/merged_manifest/customexampleDebug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. package="org.kiwix.kiwixcustomcustomexample" found in source AndroidManifest.xml: /home/runner/work/kiwix-android/kiwix-android/custom/build/intermediates/merged_manifest/customexampleDebug/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.
As well there are many other issues in the Java code itself, also listed in the report found in GitHub!
> Task :core:generateDebugLintModel butterknife.lint.LintRegistry in /home/runner/.gradle/caches/transforms-3/f7c28b3d38f993a93532a66f30e0cd1b/transformed/jetified-butterknife-runtime-10.2.3/jars/lint.jar does not specify a vendor; see IssueRegistry#vendor
Because of that earlier error, the linter check cannot run correctly within your build process. So you need to check and fix your build debug manifest, with correct settings for "Gradle" and for the "jetified-butterknife" tool dependancy (you may need to update its version 10.2.3 to a more recent and compatible one compatible with Gradle 8.0, or setup your manifest to use a lower version of Gradle). So you get that final fatal error:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:lintDebug'. > Lint found errors in the project; aborting build. Fix the issues identified by lint, or create a baseline to see only new errors: ``` Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. android { lint { baseline = file("lint-baseline.xml") } }
Note that given that your project is built on GitHub, GitHub provides many wizards to update your project dependancies, using smart Code Quality Assurance tools. Some of these addnos on GitHub even propose you fixes for such issues and can speed up your work.
When you use a free (community-supported) version of your local IDEA Intellij client, you don't have the full integration of GitHub tools: your IDE does not check the actual source report which blocks your project build. You just have its own internal linter that parse individual files to suggest things. But even if you replace these warnings locally, it won't fix your build environment used in GitHub (that can detect much more important things, notably interms of security and code quality). Your debug build is simply not correctly configured.
Vardy Thanks for your reply.
>FAILURE: Build failed with an exception.
>* What went wrong:
>Execution failed for task ':app:lintDebug'.
> Lint found errors in the project; aborting build.
Fix the issues identified by lint, or create a baseline to see only new errors: ```
>Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. > android { > lint { > baseline = file("lint-baseline.xml") > } > }
This suggestion always comes whenever lint is failing on something, it point us to make a lint-basline.xml file and suppress the lint on particular error.
>butterknife.lint.LintRegistry in /home/runner/.gradle/caches/transforms->3/f7c28b3d38f993a93532a66f30e0cd1b/transformed/jetified-butterknife-runtime->10.2.3/jars/lint.jar does not specify a vendor; see IssueRegistry#vendor
Good point we fix this asap.
and the above warnings is deprecation warning we are working on it to remove deprecated methods from our whole project.
Last time you point out the wrong translation in english string file. we had fixed it https://github.com/kiwix/kiwix-android/pull/3263 , now we can use ellipsis character instead of ... ?
Actually no: don't you see the message "Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0".
Such Lint warnings should NOT be treated as "errors".
You still need to fix the incompatibility because you use "deprecated" Gradle features. Gradle 8.0 defines more precise rules that can correctly manage the various levels of messages emitted by various Linter tools. May be you started with a version of Gradel that did not complain, but Gradle 8.0 has new requirements and cannot correctly guess what is a blocking error or an informative warning without configuration because the current configuration is too weak, and cannot differentiate different messages emitted by your linter tool, possibly because your Linter tool uses some ambiguous "generic" syntax (e.g. some regexp) from which the effective severity cannot be assessed automatically. The suggested "lint-baseline.xml" configuration allows you to manage such filters or regexps for more precise assessment. By default, the generic rule many treat many (possibly all) warning as errors, and this is bad behavior only because you've not configured it correctly as instructed by Gradle 8.0.
The following links may help you: