环境安装:
Java SDK8 (openjdk)
https : //aws.amazon.com/es/corretto/ 下载64位JDK8进行再次尝试
这里如果是64位的window电脑,使用32位的JDK8可能出现:
YaClientApp:
[java] Error occurred during initialization of VM
[java] Could not reserve enough space for 2097152KB object heap
这样的报错,所以一定要使用64位的环境。
Python
这里随便安装了3.7.932版本的,因为没有指定版本。
Google cloud sdk
https://cloud.google.com/appengine/docs/standard/java/setting-up-environment
安装Google Cloud CLI,然后执行以下命令(执行命令前请先安装JDK8):
进行初始化。(这一步是不是可以忽略?)
gcloud init --skip-diagnostics
gcloud components update
gcloud components update 命令以更新至最新版本。
安装包含 Java 8 版 App Engine 扩展程序的 gcloud 组件:
gcloud components install app-engine-java
Ant
安装出一个文件夹,然后设置ANT_HOME字段与path添加Bin路径。
可以使用ant -version 查看版本。
正式安装步骤
源码下载:
git clone https://github.com/XXX/appinventor-sources.git
cd appinventor-sources
cp sample-.gitignore .gitignore
更新Blockly:
git submodule update --init
检测环境是否正确:
.\buildtools doctor
打印结果:
[PASS] Java is installed.
[PASS] Required version of Java is installed.
[PASS] Git is installed.
[PASS] Git submodules are properly set up.
[PASS] Google Cloud SDK is installed.
Passed 5 checks and 0 failing
这就表示环境是正确的。
cd appinventor
ant MakeAuthKey
ant 或者 ant noplay(noplay参数阻止构建被称为伴侣的 aiplay 应用程序。它是可选的)
但是这里出错了:
CheckBlocklyTranslations:
init:
CheckBlocklyCompile:
BlocklyCompile:
BlocklyTranslationGenerator:
BUILD FAILED
D:\shixiangdong\AI2\TEST\appinventor-sources\appinventor\build.xml:16: The following error occurred while executing this line:
D:\shixiangdong\AI2\TEST\appinventor-sources\appinventor\build-common.xml:299: The following error occurred while executing this line:
D:\shixiangdong\AI2\TEST\appinventor-sources\appinventor\blocklyeditor\build.xml:95: org.json.JSONException: Expected a ',' or '}' at 3422 [character 113 line 74]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:229)
at org.json.JSONObject.<init>(JSONObject.java:321)
at msg.BlocklyTranslationGenerator.main(BlocklyTranslationGenerator.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:218)
at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:155)
at org.apache.tools.ant.taskdefs.Java.run(Java.java:891)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI
这里找到的是编码问题,处理方式如下:
找到以下两个文件的指定的位置:
都添加:
重新编译即可。
但是编译伴侣会导致编译时间特别长,慢点的机器编译了20分钟。
运行主服务器
java_dev_appserver.cmd --port=8888 --address=0.0.0.0 appengine/build/war/
结果:
运行构建服务器
可以通过键入以下命令从终端运行构建服务器:
cd appinventor/buildserver
ant RunLocalBuildServer
最后开发中的测试方式:
登录测试账户:
就可以正常运行了!