gpt4 book ai didi

android - android中的自定义linting lib

转载 作者:IT老高 更新时间:2023-10-28 21:38:36 28 4
gpt4 key购买 nike

我和我的团队开发 Android 应用,并决定了所有人都应该遵循的编码准则。因此,我开始按照以下链接实现自定义 lint 规则:

我遇到的问题实际上是在项目基础上实现这些 lint 规则。当我运行 ./gradlew clean build test install 时,按照指定的规则应用并且一切都很好。但是,当我使用 ./gradlew aarWrapper:assemble 构建 aar 库并将其添加到我的 libs 文件夹时,linting 不起作用。

我将以下内容添加到我的 build.gradle 文件中以添加库

repositories {
flatDir {
dirs 'libs'
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name: 'aarWrapper-debug', ext: 'aar')
}

我不确定我错过了什么,但是当我运行 ./gradlew lint 时,它会运行 linter,但不使用我的自定义规则...非常感谢任何帮助、提示或建议.

编辑 1

这是运行 gradle 时的终端输出。

:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareAarWrapperDebugLibrary UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2421Library UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72421Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2421Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportCompat2421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportCoreUi2421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportCoreUtils2421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportFragment2421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportMediaCompat2421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42421Library UP-TO-DATE
:app:prepareComAndroidSupportSupportVectorDrawable2421Library UP-TO-DATE
:app:prepareComAndroidVolleyVolley100Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidAnswers138Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidBeta121Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlytics261Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2310Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBase961Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBasement961Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesLocation961Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesMaps961Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesTasks961Library UP-TO-DATE
:app:prepareIoFabricSdkAndroidFabric1312Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:mergeDebugShaders UP-TO-DATE
:app:compileDebugShaders UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:transformClassesWithDexForDebug UP-TO-DATE
:app:mergeDebugJniLibFolders UP-TO-DATE
:app:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:app:validateSigningDebug
:app:packageDebug
:app:assembleDebug

BUILD SUCCESSFUL

Total time: 7.881 secs

编辑 2

fork 项目:https://github.com/apertomove/linette

build.gradle: https://github.com/apertomove/linette/blob/apertomove-linette/build.gradle

编辑 3除了上面的链接,我还发现了这个 post由杰森阿特伍德撰写。我们也有一个运行 jenkins 的 CI 服务器,我们可以在其中运行我们的检查并根据我们的 lint 规则通知开发人员错误。这很有效,但是,这是一步之遥。当在 Android Studio 之外运行我们的项目时,从库中运行 lint 检查会更有值(value)和节省时间,而不是提交我们的代码只是为了发现我们的项目违反规则。

最佳答案

我已经写了一篇关于如何将自定义 lint 规则添加和集成到您的 android 应用程序的帖子,您可以看看。它还具有指向 github 存储库的链接,显示了它是如何在 android 项目中完成的。 Link to post

对我来说最简单的方法是在 gradlew 文件中设置 ANDROID_LINT_JARS 路径并将其指向已 checkin 到 VCS 系统的自定义 lint jar,以便您在推送代码之前也可以在本地运行它。希望对您有所帮助。

关于android - android中的自定义linting lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39509034/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com