flurry / flurry-android-sdk

Flurry Android SDK API reference documentation
Apache License 2.0
21 stars 3 forks source link

Lint error "FlurryVersionMismatch" #27

Open PatrickKuijpers opened 2 years ago

PatrickKuijpers commented 2 years ago

Since version 13.1.0 our Android project build fails on lint errors:

Lint found 1 error. First failure:
/bitrise/src/account/build.gradle: Error: The lint detector
    com.flurry.android.versionlint.FlurryVersionDetector
called context.getMainProject() during module analysis.

This does not work correctly when running in AGP (7.0.4).

In particular, there may be false positives or false negatives because
the lint check may be using the minSdkVersion or manifest information
from the library instead of any consuming app module.

Contact the vendor of the lint issue to get it fixed/updated (if
known, listed below), and in the meantime you can try to work around
this by disabling the following issues:

"FlurryVersionMismatch"

Issue Vendors:
Identifier: jetified-analytics-13.1.0

Call stack: Context.getMainProject(Context.kt:117)←FlurryVersionDetector.visitBuildScript(FlurryVersionDetector.java:84)←LintDriver$checkBuildScripts$2.run(LintDriver.kt:1494)←LintClient.runReadAction(LintClient.kt:1780)←LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:2647)←LintDriver.checkBuildScripts(LintDriver.kt:1485)←LintDriver.runFileDetectors(LintDriver.kt:1403)←LintDriver.checkProject(LintDriver.kt:1153)←LintDriver.checkProjectRoot(LintDriver.kt:629)←LintDriver.access$checkProjectRoot(LintDriver.kt:154)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:443)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:436)←LintDriver.doAnalyze(LintDriver.kt:503)←LintDriver.analyzeOnly(LintDriver.kt:435)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:241)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:241)←LintCliClient.run(LintCliClient.kt:283)←LintCliClient.run$default(LintCliClient.kt:266)←LintCliClient.analyzeOnly(LintCliClient.kt:241)←Main.run(Main.java:1544) [LintError]

This issue doesn't occur in version 13.0.1.

poting-oath commented 2 years ago

@PatrickKuijpers Thanks for the report! Could you please provide a way to reproduce the error? Thanks!

PatrickKuijpers commented 2 years ago

Unfortunately I can't, the project is private.

If it doesn't work on a new project with just the Flurry dependency, then it would mean it's conflicting with other code from our project, probably another dependency? I have no clue where to start looking, as I don't know what causes the issue.

I've checked if there's a conflict between Flurry versions in any transient dependency (analysed using ./gradlew app:dependencies). All Flurry versions were the same, so that's not the issue.

Another possibility might be a gradle version / setting? We're using AGP 7.0.4 & gradle wrapper: distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip

Other gradle settings that might be relevant: min_sdk = 23 target_sdk = 31 build_tools = "32.0.0"

Which other settings might be causing the issue? If you need more info, I'd be happy to supply it, but sharing the complete project is impossible.

poting-oath commented 2 years ago

@PatrickKuijpers Thanks for the info! We have solution for this and will be included in the next release soon. Thanks!