A Guide For building Appinventor In both Windows and Linux!

I have setup all the steps and there is no error in any step

then as i said if you have everything setup then just the java_dev_appserver cmd and if you edit any code then run ant before using java_dev_appserver cmd . Thats it

I did this but the server is not running again at localhost:8888

Hi all, I am trying to build Appinventor in Ubuntu and have downloaded all thing and I am getting error at step

java_dev_appserver.sh --port=8888 --address=0.0.0.0 appengine/build/war/

The error:

Executing [/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java, -Dfile.encoding=UTF-8, -classpath, /usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/lib/appengine-tools-api.jar, com.google.appengine.tools.development.DevAppServerMain, --property=kickstart.user.dir=/home/ubuntu/mitapp/appinventor-sources/appinventor, --promote_yaml, --port=8888, --address=0.0.0.0, /home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war]
Feb 09, 2023 4:49:42 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
SEVERE: Received exception processing /home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war/WEB-INF/appengine-web.xml
com.google.apphosting.utils.config.AppEngineConfigException: Could not locate /home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war/WEB-INF/appengine-web.xml
	at com.google.apphosting.utils.config.AppEngineWebXmlReader.getInputStream(AppEngineWebXmlReader.java:155)
	at com.google.apphosting.utils.config.AppEngineWebXmlReader.readAppEngineWebXml(AppEngineWebXmlReader.java:89)
	at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:193)
	at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:431)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:172)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:114)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:100)
	at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:155)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:363)
	at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:310)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:384)
	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:58)
	at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:258)
	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:249)
Caused by: java.io.FileNotFoundException: /home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war/WEB-INF/appengine-web.xml (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at com.google.apphosting.utils.config.AppEngineWebXmlReader.getInputStream(AppEngineWebXmlReader.java:151)
	... 17 more

com.google.apphosting.utils.config.AppEngineConfigException: Invalid configuration
	at com.google.appengine.tools.development.DevAppServerImpl.reportDeferredConfigurationException(DevAppServerImpl.java:449)
	at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:246)
	at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:57)
	at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:233)
	at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:231)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:231)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:405)
	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:58)
	at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:258)
	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:249)
Caused by: com.google.apphosting.utils.config.AppEngineConfigException: Invalid appengine-web.xml(/home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war/WEB-INF/appengine-web.xml) - Could not locate /home/ubuntu/mitapp/appinventor-sources/appinventor/appengine/build/war/WEB-INF/appengine-web.xml
	at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:195)
	at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:431)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:172)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:114)
	at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:100)
	at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:155)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:363)
	at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:310)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:384)
	... 3 more

If anyone has faced such error or knows why I am getting this error please help.
Thanks!

Given that the error is about not finding appengine/build/war/WEB-INF/appengine-web.xml, it sounds like you did not successfully run ant beforehand.

2 Likes

At command ant MakeAuthKey
output I am getting is

Buildfile: /home/ubuntu/mitapp/appinventor-sources/appinventor/build.xml

MakeAuthKey:

init:

CheckAuthKey:

MakeAuthKey:

BUILD SUCCESSFUL
Total time: 0 seconds

But still I am getting same error

You only ever need to run ant MakeAuthKey once, but to build the whole system you need to run ant.

1 Like

With ant the error is

Buildfile: /home/ubuntu/mitapp/appinventor-sources/appinventor/build.xml

all:

init:

MakeWarLibsDir:

common_CommonUtils:

init:

CommonUtils:

common_CommonVersion:

init:

CommonVersion:

components_CommonConstants:

init:

CommonConstants:

WarLibs:

AiSharedLib:

AiServerLib:

components_AndroidRuntime:

common_CommonVersion:

init:

CommonVersion:

init:

HtmlEntities:

Barcode:

CopyComponentLibraries:

common_CommonUtils:

init:

CommonUtils:

CommonConstants:

AnnotationProcessors:

AndroidRuntime.uptodate:

AndroidRuntime:

AiClientLib:

AiRebindLib:

blocklyeditor_BlocklyTranslationGenerator:

CheckBlocklyTranslations:

init:

CheckBlocklyCompile:

BlocklyCompile:
     [java] Exception in thread "main" java.lang.IllegalArgumentException: File not found at: /home/ubuntu/mitapp/appinventor-sources/appinventor/blocklyeditor/../lib/closure-library/closure/goog
     [java] 	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
     [java] 	at org.plovr.Manifest.getInputs(Manifest.java:393)
     [java] 	at org.plovr.Manifest.getFiles(Manifest.java:369)
     [java] 	at org.plovr.Manifest.getFiles(Manifest.java:363)
     [java] 	at org.plovr.Manifest.getAllDependencies(Manifest.java:324)
     [java] 	at org.plovr.Manifest.getInputsInCompilationOrder(Manifest.java:193)
     [java] 	at org.plovr.Manifest.getCompilerArguments(Manifest.java:177)
     [java] 	at org.plovr.CompileRequestHandler.compile(CompileRequestHandler.java:94)
     [java] 	at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:58)
     [java] 	at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:31)
     [java] 	at org.plovr.cli.AbstractCommandRunner.runCommand(AbstractCommandRunner.java:41)
     [java] 	at org.plovr.cli.Command.execute(Command.java:47)
     [java] 	at org.plovr.cli.Main.mainWithExitCode(Main.java:56)
     [java] 	at org.plovr.cli.Main.main(Main.java:30)

BUILD FAILED
/home/ubuntu/mitapp/appinventor-sources/appinventor/build.xml:16: The following error occurred while executing this line:
/home/ubuntu/mitapp/appinventor-sources/appinventor/build-common.xml:301: The following error occurred while executing this line:
/home/ubuntu/mitapp/appinventor-sources/appinventor/blocklyeditor/build.xml:120: Java returned: 1


I check for error in line 120 - appinventor-sources/appinventor/blocklyeditor/build.xml but I don't know why we are getting this error.

That error indicates that you did not run git submodule update --init to load the additional dependencies needed to compile App Inventor.

1 Like

Thanks @ewpatton now I can successfully run the application locally. I ran the git submodule command in the incorrect directory hence it did not load the needed dependencies.

When I was starting the builder, I was getting this error. How to solve it?

Please Help Me To Solve This Problem :pray:

Inadvance Thanks You :sparkling_heart:

Hello Everyone,

I have followed all the steps, but I don't see any content on the localhost page.

Would be great if someone could help me with this.

are you sure you got the build successful prompt?

and any error message at this windown?

and any error at browser console panel?

1 Like

I don't have any error messages.

These are the two that are running

I have had errors with the ant noplay command.

Could that be the one that is causing the problem?

I have ignored those errors as it was mentioned as that it was optional

Please post the logs of the ant no play command too.

Here is the BUILD FAIL message of the ant noplay command

Thanks

we need more ant result to check why failed.

It seems that java can't allocate enough resources for the compilation.
You can try closing other applications before compiling, or try setting JAVA-OPTIONS_ to the required value.
You can search the web, there are multiple tutorials.

Also, what are the specifications of your machine?

Thanks a lot @Kevinkun and @Pradevel for your help.

I had been using the 32-bit version of java but now as I changed to 64-bit, it works.

1 Like