以下是一些ionic app在模拟器中的调试问题:

1. CORS问题

官方原文以及解释:Handling CORS issues in Ionic

国内翻译:彻底解决Ionic项目中的跨域问题

2. SplashScreen之后显示问题

如图,默认的侧边滚动条也在,页首位置也在,布局都在,就是内容显示异常,只显示黑块和白块。

这个是在添加crosswalk之后出现的,crosswalk支持的android api是16以上;

我使用的是genymotion,运行:ionic cordova run android,在Chrome中console没有报错;

运行ionic cordova run android -l -c 就会出现CORS问题,原理见1;

运行ionic cordova run android --device --prod,出现提示:

[WARN] Error occurred during command execution from a CLI plugin
(@ionic/cli-plugin-cordova). Your plugins may be out of date.
Error: Type AboutPage in /src/pages/about/about.ts is part of the declarations of 2 modules: AppModule in /src/app/app.module.ts and AboutPageModule in /src/pages/about/about.module.ts! 
Please consider moving AboutPage in /src/pages/about/about.ts to a higher module that imports AppModule in /src/app/app.module.ts and AboutPageModule in/src/pages/about/about.module.ts. 
You can also create a new NgModule that exports and includes AboutPage in /src/pages/about/about.ts then import that NgModule in AppModule in /src/app/app.module.ts and AboutPageModule in /src/pages/about/about.module.ts.

这个报错好解决,在app.module.ts中

import { AboutPageModule } from '../pages/about/about.module';

然后imports中加入 AboutPageModule。

但是运行命令的话还是黑白块。

打包Genymotion emulator的log观察发现报错了,基本上是emulator启动过程中就报错了,报错的关键部分:

06-22 04:14:44.461 I/AudioFlinger( 240): Using default 3000 mSec as standby time.
06-22 04:14:44.462 E/ ( 240): batterystats service unavailable!

06-22 04:14:44.462 E/ ( 240): batterystats service unavailable!

06-22 04:14:44.465 I/CameraService( 240): CameraService started (pid=240)

06-22 04:14:44.465 I/CameraService( 240): CameraService process starting

06-22 04:14:44.465 E/ ( 240): batterystats service unavailable!

06-22 04:14:44.465 E/ ( 240): batterystats service unavailable!

06-22 04:14:44.513 W/gatekeeperd( 133): falling back to software GateKeeper

06-22 04:14:44.744 I/SurfaceFlinger( 229): SurfaceFlinger is starting

06-22 04:14:44.744 I/SurfaceFlinger( 229): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...

06-22 04:14:44.868 I/Genymotion( 225): overriding Battery service paths with fake ones

06-22 04:14:44.925 D/libEGL ( 229): loaded /system/lib/egl/libEGL_emulation.so

06-22 04:14:44.926 D/libEGL ( 229): loaded /system/lib/egl/libGLESv1_CM_emulation.so

06-22 04:14:44.930 D/libEGL ( 229): loaded /system/lib/egl/libGLESv2_emulation.so

06-22 04:14:44.933 E/ ( 229): Failed to connect to host (UnixStream)!!!

06-22 04:14:44.933 E/EGL_emulation( 229): Failed to establish connection with the host

06-22 04:14:44.933 W/libEGL ( 229): eglInitialize(0xf6bbf080) failed (EGL_SUCCESS)

06-22 04:14:44.965 E/ ( 229): Failed to connect to host (UnixStream)!!!

06-22 04:14:44.965 E/gralloc_vbox86( 229): gralloc: Failed to get host connection

06-22 04:14:44.965 E/SurfaceFlinger( 229): hwcomposer module not found

06-22 04:14:44.965 E/SurfaceFlinger( 229): ERROR: failed to open framebuffer (I/O error), aborting

--------- beginning of crash

06-22 04:14:44.965 F/libc ( 229): Fatal signal 6 (SIGABRT), code -6 in tid 229 (surfaceflinger)

06-22 04:14:45.004 I/iptables( 236): iptables v1.4.20: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

06-22 04:14:45.004 I/iptables( 236): Perhaps iptables or your kernel needs to be upgraded.

06-22 04:14:45.004 I/iptables( 236): iptables terminated by exit(3)

06-22 04:14:45.004 E/Netd ( 236): exec() res=0, status=768 for /system/bin/iptables -w -t nat -N oem_nat_pre

06-22 04:14:45.007 I/iptables( 236): iptables v1.4.20: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

06-22 04:14:45.007 I/iptables( 236): Perhaps iptables or your kernel needs to be upgraded.

06-22 04:14:45.007 I/iptables( 236): iptables terminated by exit(3)

06-22 04:14:45.007 E/Netd ( 236): exec() res=0, status=768 for /system/bin/iptables -w -t nat -A PREROUTING -j oem_nat_pre

06-22 04:14:45.019 I/iptables( 236): iptables v1.4.20: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

06-22 04:14:45.019 I/iptables( 236): Perhaps iptables or your kernel needs to be upgraded.

06-22 04:14:45.020 I/iptables( 236): iptables terminated by exit(3)

06-22 04:14:45.020 E/Netd ( 236): exec() res=0, status=768 for /system/bin/iptables -w -t nat -N natctrl_nat_POSTROUTING

06-22 04:14:45.024 I/iptables( 236): iptables v1.4.20: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

06-22 04:14:45.024 I/iptables( 236): Perhaps iptables or your kernel needs to be upgraded.

06-22 04:14:45.024 I/iptables( 236): iptables terminated by exit(3)

06-22 04:14:45.024 E/Netd ( 236): exec() res=0, status=768 for /system/bin/iptables -w -t nat -A POSTROUTING -j natctrl_nat_POSTROUTING

06-22 04:14:45.072 F/DEBUG ( 237): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

06-22 04:14:45.072 F/DEBUG ( 237): Build fingerprint: 'Android/vbox86p/vbox86p:6.0/MRA58K/genymotion03201937:userdebug/test-keys'

也就是emulator本身已经崩溃了,
网上搜索这个错误的时候,
有人说是在创建emulator的时候选择use host gpu,
但是genymotion没地方选,最起码我用的个人版是没有的,
于是打开AVD,
查看emulator,
检查他有没有选择use host gpu,
没有的话就选上,
然后启动这个emulator,
然后运行ionic cordova run android。
bingo,正常运行。
 
3.Keystore was tampered with, or password was incorrect

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':packageArmv7Release'.
> com.android.ide.common.signing.KeytoolException: Failed to read key
gitbookexplorer from store
"D:\Workspace\gitbookexplorer\platforms\android\gitbookexplorer.keystore
":
Keystore was tampered with, or password was incorrect

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or
--debug option to get more log output.
BUILD FAILED

Total time: 2.429 secs
Error: cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':packageArmv7Release'.
> com.android.ide.common.signing.KeytoolException: Failed to read key
from store
"\platforms\android\gitbookexplorer.keystore
":
Keystore was tampered with, or password was incorrect

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or
--debug option to get more log output.

没有提示输入密码,搜索错误:

or reference, I needed to update the release-signing.properties to:
storeFile=../../key.keystore
keyAlias=mykey
keyPassword=password
storePassword=password

These override the setting in build.gradle:
signingConfigs {
release {
// These must be set or Gradle will complain (even if they are overridden).
keyAlias = ""
keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
storeFile = null
storePassword = "__unset"
}
}

ionic app调试问题的更多相关文章

  1. 方法:怎么用ionic命令行调试你的ionic app

    官网上有很详细的解说  http://blog.ionic.io/live-reload-all-things-ionic-cli/ 下面说说我自己的调试过程(android版): 首先用命令行进入你 ...

  2. Android学习系列(37)--App调试内存泄露之Context篇(下)

    接着<Android学习系列(36)--App调试内存泄露之Context篇(上)>继续分析. 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncT ...

  3. ionic app打包和签名

    ionic app打包和签名 1.首先在项目根目录执行  ionic platform add android  生成Android平台. 2.配置应用签名:在根目录下执行以下命令 keytool - ...

  4. Ionic App之国际化(3) json数组的处理

    接上一篇Ionic App之国际化(2) json数组的处理 之后,如何处理json数据长度的问题,目前的一个折中方法是翻译长度字段. 多语言文件内容: "MyLa": { &qu ...

  5. Ionic App之国际化(2) json数组的处理

    在Ionic App值国际化(1)中我们实现了对单个参数的多语言处理,下面开始如何进行数组的处理. 1.在我们的多语言文件中设置要访问的json数组,en.json和zh.json,此处就以en.js ...

  6. Ionic app 上传图片之webApi接口

    App上传图片对应的webApi服务端是怎么处理的呢? using System; using System.Collections.Generic; using System.Diagnostics ...

  7. Ionic app升级插件开发

    终于走到了写插件的这个地方了,插件的过程: 1.安装plugman插件,管理我们的程序 npm install -g plugman 2.创建插件项目appUpgrade,cd 到你的目标目录下,执行 ...

  8. 【ionic App问题总结系列】ionic 如何更新app版本

    ionic 如何进行自动更新 ionic App更新有两种方式:第一种是普通的从远程下载apk,安装并覆盖旧版本.另外一种就是采用替换www文件夹的内容,实现应用内更新,而无需下载安装apk. 这篇文 ...

  9. Android APP 调试过程中遇到的问题。

    调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...

  10. [Ionic2] Device Interaction in an Ionic App with Cordova Plugins

    In this lesson, we are going to learn how to interact with native components through Cordova plugins ...

随机推荐

  1. Android Studio历史版本下载地址汇总

    原文地址: Android Studio历史版本下载地址汇总 - Stars-One的杂货小窝 由于新公司不给自带电脑,然后给了台新的电脑,于是就是需要重新下载Android Studio 但众所周知 ...

  2. ChatGPT 问答

    Win32GUI编程时,创建窗口触发消息的顺序 在Win32 GUI编程中,创建窗口并显示到屏幕上时,系统会触发一系列的消息,这些消息可以用来完成窗口的初始化和其他相关的工作.下面是创建窗口触发消息的 ...

  3. 经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖

    目录 java版源码 js版源码 在线绘制预览效果 关于计算的精确度 前些时间在更新我的坐标边界查询工具的时候,需要用到经纬度坐标点的距离计算,和以坐标点为中心生成一个指定距离为半径的圆,搜了一下没有 ...

  4. 【LGR-142-Div.4】洛谷入门赛 #13 赛后总结

    A.魔方 目测入门 -,就是需要开long long //1 #include<bits/stdc++.h> typedef long long valueType; int main() ...

  5. 前端vue uni-app列表组件 list组件,简单好用

    快速实现uni-app列表组件 list组件,简单好用; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12675 效果图如下: ...

  6. ArrayList 扩容机制

    ArrayList 基本介绍 ArrayList实现了List接口.它可以存储包括null的任何类型的对象,允许重复元素.ArrayList在内部使用一个数组来存储元素,当元素数量超过数组容量时,Ar ...

  7. CDI的概念理解

    1.CDI是什么?目的和作用是什么? 概念(是什么):是JavaEE 6标准中一个规范, 作用(干什么): 它提供了Java EE平台上服务注入的组件管理核心,简化应该是CDI的目标,让一切都可以被注 ...

  8. jar包、war包项目部署

    部署 部署 jar包 部署 war包 部署 jar包 环境准备 JDK Tomcat Linux 环境 1.将jar文件上传至服务器 2.编写脚本 启动脚本放在跟jar 一起的路径下,如果不放在同一路 ...

  9. 【原创】CPU性能优化小记

    CPU性能优化小记 目录 CPU性能优化小记 一.现象 TOP各指标含义 二.分析 启动应用前 启动应用后 采集内核函数的方法 内核采集分析 火焰图分析 三.解决 一.现象 业务线反馈,单板只要一跑我 ...

  10. 备份Ubunut已安装的软件包并在新的Ubuntu 系统上恢复

    0.查看已安装列表 dpkg -L xxxx.deb 1.备份 安装apt-clone: $sudo apt-get install apt-clone 提供一个保存备份文件的位置.我们在 /back ...