Rush • A new and improved way of building extensions

You can put any number of Java files inside the src folder (under whatever package) and they will be compiled with your extension.


You need to specify the required asset(s) in rush.yml like this:

assets:
  other:
    - new.png

You can then load this in your extension using the openAssetForExtension(...) method available in Form.

1 Like

I am fallow this steps but nat working

Same for me

@husnain_bash

1 Like

Thanks for your reply. I will surely look into it. But extension compilation is working when I select Java as language. With kotlin abrupt failed.

Hey, thanks for helping, Can you please help me in installing rush in my windows PC?

When I install Rush got this error

How to solve it?

• Build initialized

┌ Checking project files
│ info Checking metadata file (rush.yml)
│ info Checking AndroidManifest.xml file
└ done
┌ Compiling sources
│ info Picked 1 source file
└ done
┌ Processing the extension
│ info Linking extension assets
│ info Generating DEX bytecode
│ Compilation failed with an internal error.
│ java.lang.IllegalArgumentException: Unsupported class file major version 62
│ at com.android.tools.r8.A.a.a.f.(:10)
│ at com.android.tools.r8.A.a.a.f.(:2)
│ at com.android.tools.r8.A.a.a.f.(:1)
│ at com.android.tools.r8.A.a.a.f.(:107)
│ at com.android.tools.r8.graph.x0.a(:24)
│ at com.android.tools.r8.dex.a$a.a(:12)
│ at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428)
│ at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
│ at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
│ at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
│ at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
│ at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
└ failed

Hello dear @Shreyash, please release the Rush 2.0 soon.


  • We’re unavailable to desugar some Java 8 libraries using the current version of Rush.
  • Also need helper blocks support.
  • Need siblings extension support.

(We respect your hard work :heart:)

2 Likes

Also i think these needs to be added.

import com.google.appinventor.components.common.OptionList;
import com.google.appinventor.components.common.Default;



What is the problem? Is it also a JDK version issue?

got this error when i put this - deps:
- tess4j-5.7.0.jar
- commons-io-2.12.0.jar

│ erro The following error occurred while validating metadata file (rush.yml):
│ type ‘_InternalLinkedHashMap<String, dynamic>’ is not a subtype of type ‘YamlMap’ in type cast
└ failed

The problem is that your username has whitespaces in it. To work around this, move the Rush data directory (located at %USERPROFILE%/AppData/Roaming/rush on Windows) to a new location that doesn’t contain any whitespace, say C:/rush, and then create a new env var named RUSH_DATA_DIR which points to this new location.

1 Like

It’s likely that your rush.yml isn’t correctly indented. Make sure that the deps field looks like this:

deps:
  - tess4j-5.7.0.jar
  - commons-io-2.12.0.jar
1 Like

I was Trying to Install it on Ubuntu 22.04
and I am getting error like

bash: /root/.rush/bin/rush: cannot execute binary file: Exec format error

if anyone have solution then please forward me

I want rush to install on aarch64 based System, currently, it scoped to x86-64

Can we use proguard in rush?

yes, use flag (-r )

Currently, only x86_64 builds are provided. You can however build Rush for your architecture yourself. Build instructions for the current stable release can be found on the main branch.

I think I have ran into some kind of issue.
I build an extension then delete some files and jars. And when I again build it, those files are still in the aix.