简单的Angular 2 Cordova应用在安卓模拟器上无法运行

4

我正在使用Windows 10VS Code进行开发,我已经安装了Android Studio并设置了Android模拟器 Nexus 5 API 24

我使用Angular CLI创建了一个新的Angular 2应用程序:

 ng new angular2-cordova-test

在项目文件夹中,我使用Cordova CLI创建了一个新的Cordova项目:
 cordova create cordova com.example.cordova cordova
 cordova platform add android --save
 cordova build

我从根目录开始构建Angular 2应用程序,并将其构建到Cordovawww目录中。

 ng build --prod --output-path=cordova/www/

当我在模拟器中从cordova目录运行应用程序时:
 cordova emulate android

我在模拟器中看到了 Loading... ,而应用程序则无法运行

Android 模拟器

我认为这与 ES6 和模拟器的webview有关。

我该如何修复它?提前感谢。

3个回答

4

实际上,我在这里重新表述了我的问题:

https://stackoverflow.com/questions/40470766/angular-2-and-cordova

这个问题很微不足道,由于Angular 2项目中的HTML包含以下内容:

<base href="/">

这就是问题所在,只需将其删除即可。

在解决问题的过程中,我还学会了以下技能:

  • 使用模拟器上的Chrome开发工具调试应用程序
  • 使用手机上的Chrome开发工具调试应用程序
  • 创建已签名的APK文件

这是一个很好的实验。

更新:

在构建Angular + Cordova +路由的情况下,Parth Ghiya的提示是必须的。

我将meta标签更改为<base href=".">,然后一切都正常工作,包括路由。


1
太好了... 通过将<base href="/">替换为<base href=".">来修复问题。 - Ricardo D. Quiroga

3

只需使用

如果您删除基本href,则您的路由在Angular 2中将无法工作。

如果您想要构建,请执行以下操作

ng build --prod --base-href .

1
我使用这个来设置基础:<base href="./">。这对我有用。但你也可以在Android上使用<base href="file:///android_asset/www/" />
最后,我有一个非常有用的建议,就是使用Chrome远程调试器来调试你的移动应用程序。控制台会告诉你一切。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接