Lint Report: 12 warnings
Issue Types

Overview

Lint
1warning ObsoleteLintCustomCheck: Obsolete custom lint check
Correctness
1warning PrivateApi: Using Private APIs
5warning GradleDependency: Obsolete Gradle Dependency
Security
2warning HardwareIds: Hardware Id Usage
2warning TrustAllX509TrustManager: Insecure TLS/SSL trust manager
Performance
1warning StaticFieldLeak: Static Field Leaks
Disabled Checks (37)

Obsolete custom lint check

C:\Users\candy\.gradle\caches\transforms-2\files-2.1\3d70d0f404d7ba632c4d594a274e61c0\fragment-1.2.0\jars\lint.jar: Lint found an issue registry (androidx.fragment.lint.FragmentIssueRegistry) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1+)

Applies to variants: debug
Does not apply to variants: release
ObsoleteLintCustomCheck Warning Priority 10/10

Using Private APIs

../../src/main/java/com/donut/wxf1a06dafa3350688/PluginManager.kt:51: Accessing internal APIs via reflection is not supported and may not work on all devices or in the future
  48   @AsyncJsApi(methodName = "initPlugin")
  49   fun initPluginMethod(data: JSONObject?, callback: (data: Any) -> Unit, activity: Activity) {
  50       try {
  51           val clazz = Class.forName("android.app.ActivityThread")                                 
  52           val method: Method = clazz.getMethod("currentApplication")
  53           BaseConsts.mBaseApplication = method.invoke(null) as Application;
  54           BaseConsts.mTopActivity = activity;
PrivateApi Correctness Warning Priority 6/10

Obsolete Gradle Dependency

../../build.gradle:68: A newer version of androidx.exifinterface:exifinterface than 1.1.0 is available: 1.2.0
  65 }
  66 
  67 dependencies {
  68     implementation "androidx.exifinterface:exifinterface:1.1.0"
                                    
  69 
  70     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  71     implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
../../build.gradle:70: A newer version of org.jetbrains.kotlin:kotlin-stdlib-jdk7 than 1.3.72 is available: 1.7.20
  67 dependencies {
  68     implementation "androidx.exifinterface:exifinterface:1.1.0"
  69 
  70     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
                       
  71     implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  72 
  73     api "androidx.constraintlayout:constraintlayout:1.1.3"
../../build.gradle:71: A newer version of org.jetbrains.kotlin:kotlin-stdlib than 1.3.72 is available: 1.7.20
  68     implementation "androidx.exifinterface:exifinterface:1.1.0"
  69 
  70     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  71     implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
                            
  72 
  73     api "androidx.constraintlayout:constraintlayout:1.1.3"
  74 
../../build.gradle:73: A newer version of androidx.constraintlayout:constraintlayout than 1.1.3 is available: 2.1.3
  70     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  71     implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  72 
  73     api "androidx.constraintlayout:constraintlayout:1.1.3"
                                         
  74 
  75     api 'com.google.android.material:material:1.0.0'
  76 
../../build.gradle:75: A newer version of com.google.android.material:material than 1.0.0 is available: 1.5.0
  72 
  73   api "androidx.constraintlayout:constraintlayout:1.1.3"
  74 
  75   api 'com.google.android.material:material:1.0.0'
                                               
  76 
  77   compileOnly("com.tencent.luggage:wxa-standalone-open-runtime-SaaA-plugin-sdk:$saaaSDKVersionDepend") {}
  78 
GradleDependency Correctness Warning Priority 4/10

Hardware Id Usage

../../src/main/java/com/donut/plugin/util/DeviceUuidFactory.java:22: Using getString to get device identifiers is not recommended
 19         if (uuid == null) {
 20             Logger.e(context.getClass().getName());
 21             try {
 22                 final String androidId = Settings.Secure.getString(                         
 23                         context.getContentResolver(), Settings.Secure.ANDROID_ID);
 24                 if (!"9774d56d682e549c".equals(androidId)) {
 25                     uuid = UUID.nameUUIDFromBytes(androidId.getBytes("utf8"));
../../src/main/java/com/donut/plugin/util/DeviceUuidFactory.java:27: Using getDeviceId to get device identifiers is not recommended
 24   if (!"9774d56d682e549c".equals(androidId)) {
 25       uuid = UUID.nameUUIDFromBytes(androidId.getBytes("utf8"));
 26   } else {
 27       @SuppressLint("MissingPermission") final String deviceId = ((TelephonyManager) context
 28               .getSystemService(Context.TELEPHONY_SERVICE))
 29               .getDeviceId();
 30       uuid = deviceId != null ? UUID.nameUUIDFromBytes(deviceId
HardwareIds Security Warning Priority 6/10

Insecure TLS/SSL trust manager

C:\Users\candy\.gradle\daemon\6.7.1\com\lenovo\lps\reaper\sdk\h\a.class: checkClientTrusted is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers
C:\Users\candy\.gradle\daemon\6.7.1\a\a\a\h\r$b.class: checkClientTrusted is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers
TrustAllX509TrustManager Security Warning Priority 6/10

Static Field Leaks

../../src/main/java/com/donut/plugin/util/BaseConsts.kt:12: Do not place Android context classes in static fields; this is a memory leak
  9     companion object {
 10         lateinit var mBaseApplication: Application
 11 
 12         lateinit var mTopActivity: Activity                                                         
 13 
 14 
 15     }
StaticFieldLeak Performance Warning Priority 6/10

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 @SuppressLint annotation in the Java code
2. With a tools:ignore attribute in the XML file
3. With a //noinspection comment in the source code
4. With ignore flags specified in the build.gradle file, as explained below
5. With a lint.xml configuration file in the project
6. With a lint.xml configuration file passed to lint via the --config flag
7. 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/path

For more information, see https://developer.android.com/studio/write/lint.html#config