使用cordova将Angular应用程序转换为android。apk在模拟器上启动,但实际设备上只显示一个空白的白色屏幕

使用cordova将Angular应用程序转换为android。apk在模拟器上启动,但实际设备上只显示一个空白的白色屏幕,android,angular,cordova,Android,Angular,Cordova,我正在使用cordova将angular应用程序转换为android应用程序。转换后的apk文件出现在模拟器上。但当我在实际设备上安装并运行它时,它只显示一个白色的空白屏幕。等了很长时间,但一直没有出现。我对cordova和android是新手,非常感谢您的帮助 甚至SampleHelloWorld应用程序也不会出现在设备上 随后采取了一些步骤 1) ng新地狱世界 2) cd HelloWorld 3) make in index.html 4) ng构建——prod 5) 在同一文件夹中,通

我正在使用cordova将angular应用程序转换为android应用程序。转换后的apk文件出现在模拟器上。但当我在实际设备上安装并运行它时,它只显示一个白色的空白屏幕。等了很长时间,但一直没有出现。我对cordova和android是新手,非常感谢您的帮助

甚至SampleHelloWorld应用程序也不会出现在设备上

随后采取了一些步骤

1) ng新地狱世界

2) cd HelloWorld

3) make in index.html

4) ng构建——prod

5) 在同一文件夹中,通过执行cordova create mobile app com.example.hello OurFirstApp 5)cd mobile app创建cordova项目,并将所有角度输出文件复制到cordova www目录,即del-r www;cp-r../dist/HelloWorld/*www

6) cordova平台添加android

7) cordova构建android

8) cordova Simulate android-->应用程序出现在模拟器上

要在我下面做的设备上运行这个

9) cordova构建——发布android

10) cd平台\android\app\build\outputs\apk\release

11) keytool-genkey-v-keystore helloappworld.keystore-alias helloappworldmabileapps-keyalg RSA-keysize 2048-validity 10000

12) jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore helloappworld.keystore app-release-unsigned.apk helloappworldmobileapps

13) zipalign-v 4 app-release-unsigned.apk app-release-signed.apk

14) 然后我将app-release-signed.apk上传到我的谷歌硬盘,并尝试安装,然后打开。它提供了一个白色的空白屏幕

angular cli版本为8.3.19。Cordova版本是9.0.0,github repo是github.com/ruksan/AngularHelloWorld.git

,原因可能是Cordova和Zone.js是monkey patching window.addEventListener和document.addEventListener.Cordova,正在将一个新函数分配给那些将Zone.js踢出的方法,因此更改检测不再起作用。解决这个问题的一种方法是恢复以前的原型继承,如下所示

(function () {
  'use strict';

  window.addEventListener = function () {
    EventTarget.prototype.addEventListener.apply(this, arguments);
  };

  window.removeEventListener = function () {
    EventTarget.prototype.removeEventListener.apply(this, arguments);
  };

  document.addEventListener = function () {
    EventTarget.prototype.addEventListener.apply(this, arguments);
  };

  document.removeEventListener = function () {
    EventTarget.prototype.removeEventListener.apply(this, arguments);
  };
})();

第二种方法是对包含
cordova.js
的方式进行重新排序

在tsconfig.json中做了以下更改,并且成功了 “目标”:“es5”

非常感谢@Nidhin Joseph在这方面的帮助

您将
添加到index.html的head标记中。
屏幕空白问题将得到解决。

我不清楚应该在哪里添加上述代码。在转换后的cordova项目中,有一个index.js文件,它的var app={//Application Constructor initialize:function(){document.addEventListener('devicerady',this.ondevicerady.bind(this),false);}。我用给定的gode替换了此函数的主体。现在它说连接到设备。然后我只是将代码添加到主体中,保留现有代码。现在它说“设备已准备就绪”,但应用程序屏幕仍然没有显示。在包含cordova.js脚本后,需要执行上述脚本。尝试了此操作。但运气不佳。是否有人已经这样做了,谁可以共享转换为android的hello world amgular应用程序的代码并在物理设备上工作。非常感谢。谢谢!您的答案不是这个问题的完整解决方案。出现这种情况时,您必须将其作为注释输入。