28

This is not a question, it is a solution for a technical problem with android studio which I have meet. I will share my doing to fix the error if any one would encounter. The brief error message is: "Invalid revision: 3.18.1-g262b901", while 3.18.1 is latest CMake version in Android studio. But the problem is my project is old and it builds failed with this CMake version. There are 2 solutions, you can choice 1 in 2: -Remove(uninstall) CMake version 3.18.1: Click Android Studio->Preferences->Appearance & Behavior->System Settings->Android SDK->SDK Tool->(enable the Show Package Details checkbox)->CMake->Uncheck 3.18.1 checkbox, then click Apply button in right-bottom conner of dialog. -Set directory path of lower-version CMake in the local.properties file by adding this line to this file: cmake.dir=/Users/admin/Library/Android/sdk/cmake/3.10.2.4988404 (The CMake path can be different in your computer)

Long error message(a small part):

*

at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:89)
Caused by: java.lang.NumberFormatException: Invalid revision: 3.18.1-g262b901
    at com.android.repository.Revision.parseRevision(Revision.java:133)
    at com.android.repository.Revision.parseRevision(Revision.java:155)
    at com.android.build.gradle.external.cmake.CmakeUtils.getVersion(CmakeUtils.java:51)
    at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.createCmakeExternalNativeJsonGenerator(ExternalNativeJsonGenerator.java:688)

Hope it help!

Ðаn
  • 10,934
  • 11
  • 59
  • 95
Cuong Do
  • 321
  • 1
  • 3
  • 6
  • 1
    It's worth nothing that setting `cmake.dir` option to old version is buggy, and although silences OP's error causes new errors, like my Gradle did later call latest-cmake and ignored `cmake.dir` option (untill I removed incompatible CMake-versions from Android-SDK's `cmake` directory). – Top-Master Apr 25 '22 at 18:45

4 Answers4

36

Downgrading CMake solves this issue (but it's a workaround).

  1. Android Studio > Tools > SDK Manager
  2. Click SDK Tools tab
  3. Check Show Package Details
  4. Expand CMake
  5. Select a lower version
  6. Update local.properties path to the new version

Downgrading CMAKE

enter image description here

Stefan
  • 667
  • 7
  • 17
  • 1
    Downgrading shouldn't be a solution , but more of a work around. – LUser May 25 '21 at 07:09
  • 1
    Downgrading is definitely not a long-term solution as sooner or later Google will make it mandatory for us to use cmake 3.18 or things will start failing. I've experienced that with older NDK version. That said my project doesn't build with 3.18, because AS 4.1.3 re-download 3.10 automatically, what a mess :( – 3c71 Jul 10 '21 at 13:58
  • CMake 3.19.1 works. Presumably newer versions as well. – Edward Falk Aug 04 '21 at 15:17
  • Another workaround is to replaces questionable cmake that returns pesky 3.18.1-g262b901-dirty version with real cmake.exe from cmake.org that report version just as 3.18.1. – Alexandr Konovalov Sep 08 '21 at 16:25
4

Gradle version | plugin-version 4.1.2 | 6.5

worked for me

Chanakya.sun
  • 579
  • 1
  • 5
  • 13
2

Upgrade Gradle version and plugin-version to latest works for me

Sarace
  • 21
  • 3
1

I upgraded my Gradle version to 4.1.2 and it worked.

Fecoded
  • 11
  • 1
  • 3