Cordova故障排除和技巧

浏览器模拟器

使用Developer Tools中的Google Chrome浏览器模拟器。 这是一个很棒的工具。 您可以选择要模拟的设备,但请记住它是模拟器而不是真正的机器。

重要
另外,如果您从桌面更改为移动模拟器或者返回了,请点击刷新按钮,因为Quasar平台检测不是动态的(也不应该是)。

Google Chrome emulator

禁用iOS橡皮筋效果

在使用Cordova构建iOS应用程序时,如果您想禁用橡皮筋效果( https://www.youtube.com/watch?v=UjuNGpU29Mk ),请将其添加到您的/src-cordova/config.xml中:

<preference name = "DisallowOverscroll" value = "true" />

远程调试

如果您正在调试Android应用,则可以使用Google Chrome 远程调试 连接到您的Android手机/平板电脑的USB电缆。 它也可以用于仿真器。

通过这种方式,您可以直接在模拟器/手机/平板上运行的APP上使用Chrome调试工具。 检查元素,查看控制台输出等等

Android Remote Debugging
Android Remote Debugging

安装SDK后未找到Android SDK

在安装和(正确)配置环境之后,一些较新的基于Debian的操作系统(例如ubuntu,基本操作系统)可能会使您找不到’Android SDK’。 输出结果可能与此类似:

$ cordova requirements

Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: not installed
Android SDK not found. Make sure that it is installed. If it is not at the default location, set the ANDROID_HOME environment variable.
Gradle: not installed
Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /home/your_user/Android/Sdk/tools/templates/gradle/wrapper
Error: Some of requirements check failed

这可能有两个不同的原因:通常路径配置不正确。 第一步是验证您的路径是否设置正确。 这可以通过运行以下命令来完成:

$ echo $ANDROID_HOME

预期的输出应该是一个类似于这个$HOME/Android/Sdk的路径。 然后运行:

$ ls -la $ANDROID_HOME

确保文件夹包含SDK。 预期的输出应该包含‘tools’, ‘sources’, ‘platform-tools’等文件夹。

$ echo $PATH

输出应包含Android SDK“tools”文件夹和“platform-tools”工具的每个条目。 这可能看起来像这样:

/home/your_user/bin:/home/your_user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/your_user/Android/Sdk/tools:/home/your_user/Android/Sdk/platform-tools

如果你确保你的路径设置正确,并仍然在cordova requirements上出现错误,你可以尝试下面的修正:手动替换Android Studio’tools’文件夹

在Linux上设置设备

当尝试在Android手机/平板电脑上直接运行您的应用时, 你可能碰到?????? no permissions问题。

以下告诉你如何解决这个问题:

# 创建.rules文件并插入这个例子下方的内容
sudo vim /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

“51-android.rules”的内容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

现在运行adb devices应该会发现你的设备。