为什么我在Cordova Firebase插件中遇到AbstractSafeParcelable not found错误

时间:2017-10-04 13:17:54

标签: android cordova firebase ionic-framework

你好我安装了一个cordova插件有问题:cordova-plugin-firebase

这里是build的输出:

BUILD FAILED

Total time: 1.223 secs
Error: /home/thor/Projects/App_CDP/platforms/android/gradlew: Command failed with exit code 1 Error output:
/home/thor/Projects/App_CDP/platforms/android/src/plugin/google/maps/GoogleMaps.java:479: error: cannot access AbstractSafeParcelable
    options.compassEnabled(controls.getBoolean("compass"));
           ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
 /home/thor/Projects/App_CDP/platforms/android/src/plugin/google/maps/GoogleMaps.java:717: error: cannot find symbol
    String msg = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(activity);
                                   ^
  symbol:   method getOpenSourceSoftwareLicenseInfo(Activity)
  location: class GooglePlayServicesUtil
/home/thor/Projects/App_CDP/platforms/android/src/plugin/google/maps/AsyncLicenseInfo.java:22: error: cannot find symbol
    String licenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(mActivity);
                                           ^
  symbol:   method getOpenSourceSoftwareLicenseInfo(Activity)
  location: class GooglePlayServicesUtil
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.
3 errors

FAILURE: Build failed with an exception.

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

我发现这是因为com.google.android.gms:play-services-mapscom.google.firebase:firebase-messaging不在同一版本下,但我无法编辑build.gradle,因为每次构建时都会生成<{1}}

$ cat platforms/android/build.gradle

[...]

dependencies {
     compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    debugCompile(project(path: "CordovaLib", configuration: "debug"))
    releaseCompile(project(path: "CordovaLib", configuration: "release"))
    compile "com.google.gms:google-services:+"
    compile "com.google.firebase:firebase-core:+"
    compile "com.google.firebase:firebase-messaging:+"
    compile "com.google.firebase:firebase-crash:+"
    compile "com.google.firebase:firebase-config:+"
    compile "com.google.android.gms:play-services-maps:9.8.0"
    compile "com.google.android.gms:play-services-location:9.8.0"
    compile "com.facebook.android:facebook-android-sdk:4.+"
    // SUB-PROJECT DEPENDENCIES END
}

[...]

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用cordova-android-play-services-gradle-release覆盖播放服务的版本以与Firebase对齐:

cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=+