Meteor heroku解析资产清单时发生错误
我已经选择了this和this,以及所有可能的文章。 甚至检查Meteor Guide,并因为这个问题而很快变得疯狂!Meteor heroku解析资产清单时发生错误
问题: 问题越来越热代码推送(HCP)对设备工作,一旦推到下面提及ROOT_URL。
环境:
Mac macOS Sierra
Meteor : 1.5.1
Router : iron:[email protected]
Hosting : Heroku
Deploy Source: GitHub
Cordova : 7.0.1
Android tools target: 23
Buildpack: https://github.com/AdmitHub/meteor-buildpack-horse.git
Buildpack Options:
BUILDPACK_PRELAUNCH_METEOR = 0
ROOT_URL: https://grocer-eg.herokuapp.com/
运行命令:
meteor run android-device -s settings.json --mobile-server https://grocer-eg.herokuapp.com
和
meteor build --mobile-settings settings.json --server https://grocer-eg.herokuapp.com --debug --directory ../my-output-directory/
登录:
App running at: http://localhost:3000/
=> Started app on Android Device.
I20170830-19:43:30.364(3)? int logctl_get(): open '/dev/hwlog_switch' fail -1, 13. Permission denied
I20170830-19:43:30.518(3)?
I20170830-19:43:30.521(3)? Note: log switch off, only log_main and log_events will have logs!
I20170830-19:43:30.522(3)? 08-30 19:43:09.277 14167 14167 I CordovaLog: Changing log level to DEBUG(3)
I20170830-19:43:30.522(3)? 08-30 19:43:09.379 14167 14167 I chromium: [INFO:library_loader_hooks.cc(144)] Chromium logging enabled: level = 0, default verbosity = 0
I20170830-19:43:30.523(3)? 08-30 19:43:10.121 14167 14167 I MeteorWebApp: Serving asset bundle with version: d723bae98470d4b496c7c54898abf69b06ce144b
I20170830-19:43:30.524(3)? 08-30 19:43:10.498 14167 14263 E chromium: [ERROR:BudgetService.cpp(165)] Unable to connect to the Mojo BudgetService.
I20170830-19:43:30.524(3)? 08-30 19:43:11.490 14320 14380 I chromium: [INFO:library_loader_hooks.cc(144)] Chromium logging enabled: level = 0, default verbosity = 0
I20170830-19:43:30.524(3)? 08-30 19:43:12.253 14167 14167 I chromium: [INFO:CONSOLE(9676)] "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.", source: http://localhost:12128/packages/jquery.js?hash=e5fc9cebb2e37c48ddfaf76e0ab0b77cb6ce6e52 (9676)
I20170830-19:43:30.525(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: Download failure
I20170830-19:43:30.525(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: com.meteor.webapp.WebAppException: Error parsing asset manifest
I20170830-19:43:30.525(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at com.meteor.webapp.AssetManifest.<init>(AssetManifest.java:80)
I20170830-19:43:30.525(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at com.meteor.webapp.AssetBundleManager$1.onResponse(AssetBundleManager.java:112)
I20170830-19:43:30.526(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:133)
I20170830-19:43:30.526(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
I20170830-19:43:30.526(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
I20170830-19:43:30.526(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
I20170830-19:43:30.527(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at java.lang.Thread.run(Thread.java:776)
I20170830-19:43:30.527(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: Caused by: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
I20170830-19:43:30.527(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at org.json.JSON.typeMismatch(JSON.java:111)
I20170830-19:43:30.528(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at org.json.JSONObject.<init>(JSONObject.java:160)
I20170830-19:43:30.528(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at org.json.JSONObject.<init>(JSONObject.java:173)
I20170830-19:43:30.528(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: at com.meteor.webapp.AssetManifest.<init>(AssetManifest.java:39)
I20170830-19:43:30.528(3)? 08-30 19:43:15.121 14167 14505 W MeteorWebApp: ... 6 more
最新说明:
http://localhost:3000/__cordova/manifest.json
成功返回一个巨大的JSON文件,但https://grocer-eg.herokuapp.com/__cordova/manifest.json
路由为找不到模板!
我一直在寻找,而不理解上述文章的90%,并按照其中的每一个建议。
当您在本地运行时,Meteor构建会记住最后一个设置,这在技术上是一个错误,但从未解决,因为有解决方法。
为了建立一个APK,您需要确保您的构建区域是新鲜的,这个脚本做的是:
#!/bin/bash
#
# Script to generate android apk (pre-cursor)
# Remove previous build (ensures a clean build)
#
rm -rf .meteor/local/cordova-build
# Remove the app from the device (makes installation more reliable)
#
adb uninstall <%=COM_NAME%>
# Run meteor, which will build a debug apk and install it on the device
#
meteor --mobile-server <%=ROOT_URL%> run android-device
这是我用它来生成每个不同环境的脚本的模板。
完成此操作后,您的构建区域现在已准备好了目标环境的URL,并且设备上的APK已准备好适用于该环境。现在用相同的网址来构建:
meteor build --server <%=ROOT_URL%>
这有点复杂。最后,我编写了一堆脚本,以便让我轻松管理多个环境,一次用于每台开发机器,分段,测试和生产。
您可以手动执行所有操作,但容易出错。一个错误,你必须重新开始,并且构建和安装周期需要一点时间。如果你喜欢,我可以与你分享脚本。
我尝试删除cordova-build文件夹,我从我的手机中卸载了应用程序,然后运行'meteor run android-device --mobile-server ...',但我仍然遇到同样的问题。我相信问题来自Heroku方面!因为我无法获取'https://grocer-eg.herokuapp.com/__ cordova/manifest.json'的路线 – Roshdy
这是当你对你的prod服务器运行APK时,还是你处于开发模式? – Mikkel
我在本地机器上运行'meteor run'命令,但指向我的生产服务器 – Roshdy
听起来不太好。任何来自应用程序的请求都会发送到prod服务器,但这并不是应用程序的服务地点,因此您有两个事实来源,HCP将从prod服务器发生,我不认为这是您想要 – Mikkel