首页 > 解决方案 > Cordova-plugin-facebook4 - 无法构建离子应用程序

问题描述

我正在尝试在 android 模拟器中构建一个 Ionic 应用程序,但奇怪的是我无法构建该应用程序。当我运行ionic cordova run android时,构建失败并出现以下错误:

 symbol:   class GraphRequest
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:761: error: cannot find symbol
    GraphRequest graphRequest = GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken(), graphAction, new GraphRequest.Callback() {
                                                                 ^
 symbol:   variable AccessToken
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:761: error: package GraphRequest does not exist
    GraphRequest graphRequest = GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken(), graphAction, new GraphRequest.Callback() {
                                                                                                                                   ^
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:761: error: cannot find symbol
    GraphRequest graphRequest = GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken(), graphAction, new GraphRequest.Callback() {
                                ^
 symbol:   variable GraphRequest
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:810: error: cannot find symbol
    final AccessToken accessToken = AccessToken.getCurrentAccessToken();
          ^
 symbol:   class AccessToken
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:810: error: cannot find symbol
    final AccessToken accessToken = AccessToken.getCurrentAccessToken();
                                    ^
 symbol:   variable AccessToken
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:864: error: cannot find symbol
    if (error instanceof FacebookServiceException) {
                         ^
 symbol:   class FacebookServiceException
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:865: error: cannot find symbol
        return getFacebookRequestErrorResponse(((FacebookServiceException) error).getRequestError());
                                                 ^
 symbol:   class FacebookServiceException
 location: class ConnectPlugin
/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/app/src/main/java/org/apache/cordova/facebook/ConnectPlugin.java:870: error: cannot find symbol
    if (error instanceof FacebookDialogException) {
                         ^
 symbol:   class FacebookDialogException
 location: class ConnectPlugin
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
100 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> 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.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
at ChildProcess.whenDone (/home/hudson/projetos/brazil-cartoon/brazil-cartoon-app/platforms/android/cordova/node_modules/cordova-common/src/superspawn.js:169:23)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
[2K[G(node:13843) 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)
[2K[G(node:13843) [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.

问题可能出在cordova-plugin-facebook4上,因为当我删除这个插件时它会起作用。我已按照插件页面中的 Android 指南说明进行操作,但不知道如何解决。我能做些什么来解决这个问题并使用这个插件吗?

标签: androidfacebookcordovaionic-frameworkcordova-plugins

解决方案


只需检查一个1.7.4运行良好的特定版本,因此请尝试使用以下命令

ionic cordova plugin add cordova-plugin-facebook4@1.7.4 --variable APP_ID="xxxxx" --variable APP_NAME="XXXX XXXX"

推荐阅读