为Android构建手机缺口应用程序失败

You*_*wad 16 java android gradle cordova

当试图建立我的手机间隙应用程序的Android使用

sudo phonegap build android
Run Code Online (Sandbox Code Playgroud)

它失败并出现此错误:

:compileDebugJava
/Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:120: error: cannot find symbol

                                || Config.isUrlWhiteListed(url)) {
                                         ^

  symbol:   method isUrlWhiteListed(String)

  location: class Config

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

1 error


FAILED



FAILURE: 
Build failed with an exception.



* What went wrong:

Execution failed for task ':compileDebugJava'.

> 
Compilation failed; see the compiler error output for details.



* 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: 5.607 secs


/Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^

Error code 1 for command: /Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/build.gradle,-Dorg.gradle.daemon=true

ERROR building one of the platforms: Error: /Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/cordova/build: Command failed with exit code 1
You may not have the required environment or OS to build this project

Error: /Users/youssefsami/Library/Mobile Documents/com~apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/android/cordova/build: Command failed with exit code 1
    at ChildProcess.whenDone (/usr/local/lib/node_modules/phonegap/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:110:17)
    at maybeClose (child_process.js:1015:16)
    at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
Run Code Online (Sandbox Code Playgroud)

我尝试将java_home设置为lib exec中的java别名,但仍然没有.关于可能导致问题的任何想法?

JDa*_*wgg 24

这是因为你的InAppBrowser插件已经过时,可能与新版本的Cordova Android平台不同,而不是你第一次安装插件时.我在使用cordova-android@4.0.0和InAppBrowser的0.5.3时遇到了同样的问题.

修复是先删除插件

cordova plugin rm org.apache.cordova.inappbrowser
Run Code Online (Sandbox Code Playgroud)

然后再次添加它(它应该重新安装最新版本的cordova CLI在我的情况下它抓住了0.6).您可以在plugins/org.apache.cordova.inappbrowser /文件夹中的RELEASENOTES.md中查看版本.

cordova plugin add org.apache.cordova.inappbrowser
Run Code Online (Sandbox Code Playgroud)

您需要删除Android平台并在重新构建之前重新添加它,这样它就不会保留旧版本的插件.

cordova platform rm android
Run Code Online (Sandbox Code Playgroud)

cordova platform add android
Run Code Online (Sandbox Code Playgroud)

现在再次构建,错误应该已经消失.

编辑:我刚刚在你的问题的顶部注意到你正在使用phonegap.既然你用cordova标记了(这就是我使用的东西)我用cordova命令回答了,但我猜测几乎同样的过程适用于Phonegap.


Top*_*phe 4

cordova-android@4.0.0 同样的问题谢谢 JDawgg,你的解决方案比我的更好,但如果有人仍然有这个错误,你可以像这样使用 cordova-android@3.6.4 :

cordova platform remove android
Run Code Online (Sandbox Code Playgroud)

然后

cordova platform add android@3.6.4
Run Code Online (Sandbox Code Playgroud)

你必须安装android 4.2.2 sdk

最后

sudo phonegap build android
Run Code Online (Sandbox Code Playgroud)