Installation

How to import SolversLib into your Android Studio FTC Project

1. Installing from FTCLib

build.gradle

The only thing you need to change from FTCLib is the dependency in build.gradle

build.gradle (Module: TeamCode)
dependencies {
    // implementation "org.ftclib.ftclib:core:2.1.1" remove FTCLib core
    // FTCLib's vision is no longer supported in SolversLib
    implementation "org.solverslib:core:0.2.3" // add SolversLib core

Or, if you are using pedroPathing, change to this dependency block

build.gradle (Module: TeamCode)
dependencies {
    // implementation "org.ftclib.ftclib:core:2.1.1" remove FTCLib core
    // FTCLib's vision is no longer supported in SolversLib
    implementation "org.solverslib:core:0.2.3" // core
    implementation "org.solverslib:pedroPathing:0.2.3" // pedroPathing
}

The latest version numbers (as well as a list of all version numbers) are available at:

Warning: If you choose to use the Pedro Pathing module, you still need to install Pedo Pathing in order to use it.

Please note that you should not and cannot have both FTCLib and SolversLib installed at the same time.

Changing Imports:

Lastly, follow the steps in the Changing Imports section and then Gradle Sync

2. Installing from Scratch

build.common.gradle

First, you need to add the mavenCentral library repository to your build.gradle file at the project root:

build.gradle
    repositories {
        mavenCentral()
    }

Next, minSdkVersion to 24 and multiDexEnabled to true:

build.common.gradle
defaultConfig {
    applicationId 'com.qualcomm.ftcrobotcontroller'
    minSdkVersion 24
    targetSdkVersion 28
    multiDexEnabled true

Next, change JavaVersion to 8 :

build.common.gradle
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

build.gradle (TeamCode)

Add this dependency block for the base library:

build.gradle (Module: TeamCode)
dependencies {
    implementation "org.solverslib:core:0.2.3" // core
build.gradle (Module: TeamCode)
dependencies {
    implementation "org.solverslib:core:0.2.3" // core
    implementation "org.solverslib:pedroPathing:0.2.3" // pedroPathing
}

The latest version numbers (as well as a list of all version numbers) are available at:

Warning: If you choose to use the Pedro Pathing module, you still need to install Pedo Pathing in order to use it.

Snapshot Versions:

SolversLib is graciously hosted on the Dairy Foundation (thanks to Oscar!), and has release versions and snapshots versions.

  • Release versions:

    • Are official, verified versions of SolversLibs

    • Less likelier to have problems/bugs

    • Are in the form: implementation "org.solverslib:core:x.y.z" (where x, y, and z are version numbers).

  • Snapshots versions:

    • Are unofficial, and effectively beta versions with newere features and additions

    • More likelier to have problems/bugs

    • Are in the form: implementation "org.solverslib:pedroPathing:SNAPSHOT-abc1234" (7 random letters & numbers).

For most people, it is HIGHLY recommended to use the releases versions. Should you still want to use the snapshots versions instead of releases, you can use the dependencies instead:

Changing Imports:

Because the package names will be different, you can either manually replace all instances of com.arcrobotics.ftclib with com.seattlesolvers.solverslib , or use a command in a terminal to replace them all at once for you. Please make sure you either open a terminal into your Android Studio project or use the built-in Android Studio terminal to run the commands below.

FTCLib Imports to SolversLib Imports (MacOS/Linux):

find . -type f -name "*.java" -exec sed -i '' 's/com.arcrobotics.ftclib/com.seattlesolvers.solverslib/g' {} +

SolversLib Imports to FTCLib Imports (MacOS/Linux):

find . -type f -name "*.java" -exec sed -i '' 's/com.seattlesolvers.solverslib/com.arcrobotics.ftclib/g' {} +

FTCLib Imports to SolversLib Imports (Windows):

Get-ChildItem -Recurse -Filter *.java | ForEach-Object { (Get-Content $.FullName) -replace 'com.arcrobotics.ftclib', 'com.seattlesolvers.solverslib' | Set-Content $.FullName }

SolversLib Imports to FTCLib Imports (Windows):

Get-ChildItem -Recurse -Filter *.java | ForEach-Object { (Get-Content $.FullName) -replace 'com.seattlesolvers.solverslib', 'com.arcrobotics.ftclib' | Set-Content $.FullName }

Sync Gradle and Finished!

Last updated