Cordova一些问题

1. 2018年4月运行以前的cordova项目出错,新建项目也不行

node v6.10.4下,将cordova卸载,然后重装6.3.1

$ cnpm uninstall -g cordova
$ cpnm i -g cordova@6.3.1
$ cordova create xxx

2. 构建项目出错

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':CordovaLib:processDebugResources'.
> java.io.IOException: Cannot run program "/home/johnny/dev/android-sdk-linux/build-tools/22.0.1/aapt": error=2, 没有那个文件或目录

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

cordova需要32位包,但环境为64位ubuntu,安装必要lib

sudo apt-get install lib32stdc++6 lib32z1

3. 构建项目出错

windows和ubuntu同样错误,但是windows gitbash中错误信息乱码,用linux build看到错误如下:

/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java:25: 错误: 找不到符号
import android.webkit.ClientCertRequest;
                     ^
  符号:   类 ClientCertRequest
  位置: 程序包 android.webkit
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java:32: 错误: 找不到符号
    private final ClientCertRequest request;
                  ^
  符号:   类 ClientCertRequest
  位置: 类 CordovaClientCertRequest
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java:34: 错误: 找不到符号
    public CordovaClientCertRequest(ClientCertRequest request) {
                                    ^
  符号:   类 ClientCertRequest
  位置: 类 CordovaClientCertRequest
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java:29: 错误: 找不到符号
import android.webkit.ClientCertRequest;
                     ^
  符号:   类 ClientCertRequest
  位置: 程序包 android.webkit
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java:116: 错误: 找不到符号
    public void onReceivedClientCertRequest (WebView view, ClientCertRequest request)
                                                           ^
  符号:   类 ClientCertRequest
  位置: 类 SystemWebViewClient
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:40: 错误: 找不到符号
import android.webkit.PermissionRequest;
                     ^
  符号:   类 PermissionRequest
  位置: 程序包 android.webkit
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:253: 错误: 找不到符号
    public boolean onShowFileChooser(WebView webView, final ValueCallback<Uri[]> filePathsCallback, final WebChromeClient.FileChooserParams fileChooserParams) {
                                                                                                                         ^
  符号:   类 FileChooserParams
  位置: 类 WebChromeClient
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:273: 错误: 找不到符号
    public void onPermissionRequest(final PermissionRequest request) {
                                          ^
  符号:   类 PermissionRequest
  位置: 类 SystemWebChromeClient
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:251: 错误: 找不到符号
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                                  ^
  符号:   变量 LOLLIPOP
  位置: 类 VERSION_CODES
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:271: 错误: 找不到符号
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                                  ^
  符号:   变量 LOLLIPOP
  位置: 类 VERSION_CODES
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java:114: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java:37: 错误: 找不到符号
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                                                        ^
  符号:   变量 LOLLIPOP
  位置: 类 VERSION_CODES
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java:38: 错误: 找不到符号
            cookieManager.setAcceptThirdPartyCookies(webView, true);
                         ^
  符号:   方法 setAcceptThirdPartyCookies(WebView,boolean)
  位置: 类型为CookieManager的变量 cookieManager
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java:59: 错误: 找不到符号
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                                                        ^
  符号:   变量 LOLLIPOP
  位置: 类 VERSION_CODES
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java:60: 错误: 找不到符号
            cookieManager.flush();
                         ^
  符号:   方法 flush()
  位置: 类型为CookieManager的变量 cookieManager
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:252: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:259: 错误: 找不到符号
                    Uri[] result = WebChromeClient.FileChooserParams.parseResult(resultCode, intent);
                                                  ^
  符号:   变量 FileChooserParams
  位置: 类 WebChromeClient
/home/johnny/dev/wk/testapp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java:272: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
注: 某些输入文件使用或覆盖了已过时的 API。

3. IOS 编译错误

$ cordova build ios
(node:669) UnhandledPromiseRejectionWarning: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

(node:669) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:669) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

百度后说因为安装了多个xcode,需要指定一个

$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

4. IOS执行npm install的错误

Access permission xxx/node_modules/xxx

重启mac

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6768
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5416
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2547
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4848
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏飞扬的花生

jsencrypt参数前端加密c#解密

      写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度...

3859
来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5287
来自专栏落花落雨不落叶

canvas画简单电路图

60911
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3105

扫码关注云+社区