# AndroidPluginVersion

# AndroidPluginVersion

<br />

```
class AndroidPluginVersion : Comparable
```

<br />

*** ** * ** ***

Represents a version of the Android Gradle Plugin

Designed for plugin authors to compare the currently running plugin version, so implements comparable.

For example`AndroidPluginVersion(7, 0)`refers to Android Gradle Plugin version 7.0.0, and`AndroidPluginVersion(7, 0, 1)`refers to Android Gradle Plugin version 7.0.1.

The internal representation is normalized, so that`AndroidPluginVersion(7, 0)`equals`AndroidPluginVersion(7, 0, 0)`

Also supports preview versions through methods[alpha](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#alpha(kotlin.Int)),[beta](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#beta(kotlin.Int))and[rc](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#rc(kotlin.Int))that return the more specific version. For example`AndroidPluginVersion(7, 0).alpha(5)`refers to Android Gradle Plugin version 7.0.0-alpha05. This is for use when developing using incubating APIs that have changed between preview releases of the Android Gradle Plugin. Once those APIs are stable in a stable version of Android Gradle Plugin, it's recommended to drop support for the preview versions. For example, if a new API was introduced in 7.0.0-alpha05, you can test for that using

`````if (androidComponents.pluginVersion >= AndroidPluginVersion(7.0).alpha(5)) { ... }`````

If that API is marked as stable in 7.0.0, drop support for the preview versions before it by updating your condition to:

`````if (androidComponents.pluginVersion >= AndroidPluginVersion(7.0)) { ... }`````

## Summary

|                                                                                                                                                                                                                                                         ### Public constructors                                                                                                                                                                                                                                                          ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#AndroidPluginVersion(kotlin.Int,kotlin.Int))`(major: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, minor: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Create an AndroidPluginVersion with the given major and minor version.                                                                                                        |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#AndroidPluginVersion(kotlin.Int,kotlin.Int,kotlin.Int))`(major: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, minor: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, micro: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Create an AndroidPluginVersion with the given major, minor and micro version. |

|                                                                                                                                                                                                                                                                                                     ### Public functions                                                                                                                                                                                                                                                                                                     ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)                                                                                           | [alpha](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#alpha(kotlin.Int))`(alpha: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns an alpha version.   |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)                                                                                           | [beta](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#beta(kotlin.Int))`(beta: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns a beta version.        |
| `open operator `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                                                | [compareTo](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#compareTo(com.android.build.api.AndroidPluginVersion))`(other: `[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)`)`                                                                            |
| `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html)` `[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion) | [dev](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#dev())`()` From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)specify an internal development version.                                                                                     |
| `open operator `[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                                                                                                        | [equals](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#equals(kotlin.Any))`(other: `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`?)`                                                                                                                                                                      |
| `open `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                                                         | [hashCode](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#hashCode())`()`                                                                                                                                                                                                                                                                |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)                                                                                           | [rc](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#rc(kotlin.Int))`(rc: `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns a release candidate version. |
| `open `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                                                                                                   | [toString](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#toString())`()`                                                                                                                                                                                                                                                                |

|                                                                                                                 ### Public properties                                                                                                                  ||
|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)          | [major](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#major()) The major version.                       |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)          | [micro](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#micro()) The micro, or patch version.             |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)          | [minor](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#minor()) The minor version.                       |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)          | [preview](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#preview()) The preview version.                 |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?` | [previewType](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion#previewType()) The type of preview version. |

## Public constructors

### AndroidPluginVersion

```
AndroidPluginVersion(major: Int, minor: Int)
```

Create an AndroidPluginVersion with the given major and minor version.

For example`AndroidPluginVersion(7, 0)`refers to Android Gradle Plugin version 7.0.0.  

### AndroidPluginVersion

```
AndroidPluginVersion(major: Int, minor: Int, micro: Int)
```

Create an AndroidPluginVersion with the given major, minor and micro version.

For example`AndroidPluginVersion(7, 0, 1)`refers to Android Gradle Plugin version 7.0.1.

## Public functions

### alpha

```
fun alpha(alpha: Int): AndroidPluginVersion
```

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns an alpha version.

For example`AndroidPluginVersion(7, 0).alpha(5)`refers to Android Gradle Plugin version 7.0.0-alpha05.  

### beta

```
fun beta(beta: Int): AndroidPluginVersion
```

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns a beta version.

For example`AndroidPluginVersion(7, 0).beta(2)`refers to Android Gradle Plugin version 7.0.0-beta02.  

### compareTo

```
open operator fun compareTo(other: AndroidPluginVersion): Int
```  

### dev

```
@Incubating
fun dev(): AndroidPluginVersion
```

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)specify an internal development version.

`-dev`versions are never publicly released, but this can be useful if you are building the Android Gradle Plugin from source.

For example`AndroidPluginVersion(7, 0).dev()`refers to Android Gradle Plugin version 7.0.0-dev.  

### equals

```
open operator fun equals(other: Any?): Boolean
```  

### hashCode

```
open fun hashCode(): Int
```  

### rc

```
fun rc(rc: Int): AndroidPluginVersion
```

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/AndroidPluginVersion)returns a release candidate version.

For example`AndroidPluginVersion(7, 0).rc(1)`refers to Android Gradle Plugin version 7.0.0-rc01.  

### toString

```
open fun toString(): String
```

## Public properties

### major

```
val major: Int
```

The major version.

e.g. 7 for Android Gradle Plugin Version 7.0.1  

### micro

```
val micro: Int
```

The micro, or patch version.

e.g. 1 for Android Gradle Plugin Version 7.0.1  

### minor

```
val minor: Int
```

The minor version.

e.g. 0 for Android Gradle Plugin Version 7.0.1  

### preview

```
val preview: Int
```

The preview version.

e.g. 5 for Android Gradle Plugin Version 7.0.0-alpha05  

### previewType

```
val previewType: String?
```

The type of preview version.

Null in the case of a stable version. One of 'alpha', 'beta', 'rc', 'dev' for preview versions.

e.g. 'alpha' for Android Gradle Plugin Version 7.0.0-alpha05