So, you were super excited about Kodular’s new release, waiting eagerly for all the new things. The update lands, you compile your app with all that excitement, install it, and poof! Your app is no longer working! All you see is a weird error that says, “ Runtime Error Failed resolution of: ***”
Reading the posts on the community you might have realized that this happens because of some extensions that are not compatible with the new Kodular. But hey, you don’t have time to wait for each and every extension developer to update their extensions, right? So, what now?!?
Introducing Recast
Worry not, Recast is here for the rescue! With Recast, you can make your old extensions compatible with the latest version of Kodular all by yourself; no waiting for the extension developers to release a new update.
Recast is a command-line tool. Behind the scenes, it migrates all the references in your extensions from the old Android support libraries to their latest AndroidX equivalent. All of this happens without affecting the working of the extensions in any manner.
Enough talking, now, let’s see how you can use Recast to make your extensions compatible with the new Kodular.
Prerequisites
To use Recast, you need to have Java Runtime Environment (JRE) installed on your system. To check if you have it pre-installed, open your favorite terminal app and run the following:
java -version
If you get an output similar to below, JRE is already available on your system.
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
If you don’t see an output similar to the above, you will need to install Java before installing Recast.
Installing Recast [Latest version: 0.2.1]
Recast is a command-line tool, and therefore, you first need to install it on your computer to use it. As of now, Recast can be installed on the following operating systems:
- Windows (64 bit)
- macOS (x86_64 arch)
- GNU/Linux (x86_64 arch)
Using PowerShell (Windows)
- Open PowerShell.
- Copy and paste the following and hit enter:
iwr https://raw.githubusercontent.com/shreyashsaitwal/recast/main/scripts/install.ps1 -useb | iex
- Done! You’re all set up.
Using Shell (macOS and Linux)
- Open your favorite shell (terminal).
- Copy and paste the following and hit enter:
curl https://raw.githubusercontent.com/shreyashsaitwal/recast/main/scripts/install.sh -fsSL | sh
- Once the download is complete, add Recast to your
PATH
by copying the export command from the output (as shown below) and running it:
- Done!
Usage
Recasting extensions (AIX)
To make your old extension compatible with Kodular >1.5.0 using Recast, go through the following steps:
- Navigate to the directory/folder where your extension is placed.
- Open your favorite terminal in that directory.
- Now, run the following:
recast --input you.extension.aix
(Here, your.extension.aix
is the name of your extension)
4. Bingo! A new, recasted extension with the name your.extension.x.aix
is generated in the current working and ready to be used.
Recasting AIAs
Starting with Recast v0.2.0, you get the ability to recast your AIA files as well. This reduces the manual work of re-importing every recasted extension in your project.
Go through the following steps to recast your AIAs:
- Navigate to the directory/folder where your AIA is placed.
- Open your favorite terminal in that directory.
- Now, run the following:
recast --input you_app.aia
(Here, you_app.aia
is the name of your AIA file)
4. And there you go! All the extensions in your AIA are now recasted, and the new AIA can be found in the same directory with the name your_app_x.aia
.
Note:
When you import a recasted AIA in Kodular (or AI2), your existing project isn’t affected. Instead, a separate project with the name your_app_x
is created with all the existing work preserved.
Tips
- You can recast multiple extensions all at once by gathering them all in one directory and then running:
recast --input directory_path
(Here, directory_path
is the path to the directory where extensions are stored.)
- If you want to output the recasted extension(s) in a separate directory, all you need to do is specify the
--output
option and pass the path to your desired directory.
recast --input you.extension.aix --output output_dir_path
(Here, output_dir_path
is the path to the output directory.)
FAQ
- Do I need to recast every extension to make it compatible with Kodular >1.5.0?
➤ No, you don’t need to. Only the extensions that started throwing errors after the latest update need to be recasted.
- Why does Recast print
No references to support libraries found
when I try to recast my extension?
➤ It means that your extension is already compatible with Kodular >1.5.0, and you don’t need to recast it.
GitHub
Recast is open-source and is available on GitHub under the MIT license.
https://github.com/shreyashsaitwal/recast
Feedback
Feel free to ask questions about almost anything related to Recast here. I understand most of you are no-coders and might not have used or installed a terminal app before. Every question is legit and no one’s gonna judge you.
Cheers,
Shreyash