# AndroidPluginVersion

# AndroidPluginVersion

```
class AndroidPluginVersion : Comparable<AndroidPluginVersion>
```

|---|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                         ||
| ↳ | [com.android.build.api.AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#) |

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.1/com/android/build/api/AndroidPluginVersion#alpha(kotlin.Int)),[beta](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#beta(kotlin.Int))and[rc](https://developer.android.com/reference/tools/gradle-api/7.1/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                                                                                                                                                                                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [<init>](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#%3Cinit%3E(kotlin.Int,%20kotlin.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.                                                                                                             |
| [<init>](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#%3Cinit%3E(kotlin.Int,%20kotlin.Int,%20kotlin.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 methods                                                                                                                                                                                                                                                           ||
|----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#) | [alpha](https://developer.android.com/reference/tools/gradle-api/7.1/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.1/com/android/build/api/AndroidPluginVersion#)returns an alpha version.   |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#) | [beta](https://developer.android.com/reference/tools/gradle-api/7.1/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.1/com/android/build/api/AndroidPluginVersion#)returns a beta version.        |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                       | [compareTo](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#compareTo(com.android.build.api.AndroidPluginVersion))`(`other:` `[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#)`)` <br />                                                                     |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#) | [dev](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#dev())`()` From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#)specify an internal development version.                                                                                       |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                               | [equals](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#equals(kotlin.Any))`(`other:` `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?`)` <br />                                                                                                                                                                |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                       | [hashCode](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#hashCode())`()` <br />                                                                                                                                                                                                                                                            |
| [AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#) | [rc](https://developer.android.com/reference/tools/gradle-api/7.1/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.1/com/android/build/api/AndroidPluginVersion#)returns a release candidate version. |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                 | [toString](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#toString())`()` <br />                                                                                                                                                                                                                                                            |

|                                                                                                                          ### Properties                                                                                                                          ||
|-----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)        | [major](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/AndroidPluginVersion#major:kotlin.Int) 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.1/com/android/build/api/AndroidPluginVersion#micro:kotlin.Int) 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.1/com/android/build/api/AndroidPluginVersion#minor:kotlin.Int) 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.1/com/android/build/api/AndroidPluginVersion#preview:kotlin.Int) 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.1/com/android/build/api/AndroidPluginVersion#previewType:kotlin.String) The type of preview version. |

## Public constructors

### \<init\>

```
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.  

### \<init\>

```
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 methods

### alpha

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

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/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.1/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

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

### dev

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

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/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

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

### hashCode

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

### rc

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

From a stable[AndroidPluginVersion](https://developer.android.com/reference/tools/gradle-api/7.1/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

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

## 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