mapsplugin / cordova-plugin-googlemaps

Google Maps plugin for Cordova
Apache License 2.0
1.66k stars 918 forks source link

Either cannot build (java exception) or get #1200

Closed ChristophRettinger closed 7 years ago

ChristophRettinger commented 7 years ago

When using the 1.4.0-beta version and the cordova-plugin-geofence plugin I get a java error. Installing one of them I can build, but installing both of them lead to an error:

compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
[...]\platforms\android\src\plugin\google\maps\PluginUtil.java:135: error: cannot access AbstractSafeParcelable
    Builder builder = LatLngBounds.builder();
                                   ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
:compileDebugJavaWithJavac FAILED

Reproduce with:

ionic start test --v2
cd test
ionic platform add android
ionic plugin add https://github.com/mapsplugin/cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="..." 
ionic plugin add cordova-plugin-geofence
ionic build android

I can build when I use the following command:

ionic plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="..." 

but then, I get a runtime exception:

my location requires permission ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION

I home someone can help fixing either of the problems. If I should provide more info, please tell.

Regards and thanks!

tarouboy commented 7 years ago

Same here. cannot do android build if using the master branch, however if using the npm version there are more problems on iOS. please help 👍

wf9a5m75 commented 7 years ago

At least, I didn't face any build error.

$ ionic start test --v2
Creating Ionic app in folder /(path to the work dir)/test based on tabs project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Adding initial native plugins
[=============================]  100%  0.0s
Adding in iOS application by default
Saving your Ionic app state of platforms and plugins
Saved platform
Saved plugins
Saved package.json
♬ ♫ ♬ ♫  Your Ionic app is ready to go! ♬ ♫ ♬ ♫
Some helpful tips:
Run your app in the browser (great for initial development):
  ionic serve
Run on a device or simulator:
  ionic run ios[android,browser]
Test and share your app on device with Ionic View:
  http://view.ionic.io
Build better Enterprise apps with expert Ionic support:
  http://ionic.io/enterprise
New! Add push notifications, live app updates, and more with Ionic Cloud!
  https://apps.ionic.io/signup
New to Ionic? Get started here: http://ionicframework.com/docs/v2/getting-started

$ cd test

$ ionic platform list

Installed platforms:
  ios 4.1.1
Available platforms: 
  amazon-fireos ~3.6.3 (deprecated)
  android ~6.0.0
  blackberry10 ~3.8.0
  browser ~4.1.0
  firefoxos ~3.6.3
  osx ~4.0.1
  webos ~3.7.0

$ ionic platform rm ios

$ ionic platform add android

Adding android project...
Creating Cordova project for the Android platform:
    Path: platforms/android
    Package: com.ionicframework.test975329
    Name: test
    Activity: MainActivity
    Android target: android-24
Subproject Path: CordovaLib
Android project created with cordova-android@6.0.0
Installing "cordova-plugin-console" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.596 secs
Installing "cordova-plugin-device" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.776 secs
Installing "cordova-plugin-splashscreen" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.682 secs
Installing "cordova-plugin-statusbar" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.817 secs
Installing "cordova-plugin-whitelist" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 2.142 secs
               This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.

Installing "ionic-plugin-keyboard" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.826 secs

$ ionic plugin add https://github.com/mapsplugin/cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="..."

Fetching plugin "https://github.com/mapsplugin/cordova-plugin-googlemaps" via git clone
Repository "https://github.com/mapsplugin/cordova-plugin-googlemaps" checked out to git ref "master".
Installing "cordova-plugin-googlemaps" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.612 secs
Subproject Path: CordovaLib
             In order to run this plugin, you need to obtain Google Maps API key for Android.
             Visit https://github.com/mapsplugin/cordova-plugin-googlemaps/wiki/Installation
             Check our release notes.
             https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Release-Notes

$ ionic plugin add cordova-plugin-geofence

Fetching plugin "cordova-plugin-geofence" via npm
Installing "cordova-plugin-geofence" for android
Fetching plugin "cordova-plugin-compat" via npm
Installing "cordova-plugin-compat" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.474 secs
Fetching plugin "es6-promise-plugin" via npm
Installing "es6-promise-plugin" for android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 1.98 secs
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.655 secs
Subproject Path: CordovaLib

$ ionic build android
ANDROID_HOME=/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Subproject Path: CordovaLib
Parallel execution is an incubating feature.
Incremental java compilation is an incubating feature.
:preBuild
:CordovaLib:preBuild
:preBuild UP-TO-DATE
:CordovaLib:preBuild UP-TO-DATE
:preDebugBuild
:CordovaLib:preDebugBuild
:preDebugBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:checkDebugManifest
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl
:preReleaseBuild UP-TO-DATE
:generateDebugBuildConfig
:generateDebugResValues
:incrementalDebugJavaCompilationSafeguard
:CordovaLib:compileDebugNdk

UP-TO-DATE
:CordovaLib:compileLint
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugShaders
:CordovaLib:compileDebugShaders
:compileDebugNdk
 UP-TO-DATE
:CordovaLib:generateDebugAssets
:CordovaLib:mergeDebugAssets
:mergeDebugShaders
:CordovaLib:mergeDebugProguardFiles
:CordovaLib:packageDebugRenderscript
:compileDebugShaders
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:compileDebugRenderscript
:generateDebugAssets
:processDebugJavaRes

UP-TO-DATE
:validateSigningDebug
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:processDebugManifest
:CordovaLib:generateDebugBuildConfig
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:incrementalDebugJavaCompilationSafeguard
:CordovaLib:compileDebugJavaWithJavac
:CordovaLib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processDebugJavaRes

UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug
:CordovaLib:mergeDebugJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
:CordovaLib:bundleDebug
:prepareAndroidCordovaLibUnspecifiedDebugLibrary
:CordovaLib:preReleaseBuild UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint UP-TO-DATE
:CordovaLib:mergeReleaseShaders
:CordovaLib:compileReleaseShaders
:CordovaLib:generateReleaseAssets
:CordovaLib:mergeReleaseAssets
:CordovaLib:mergeReleaseProguardFiles
:CordovaLib:packageReleaseRenderscript

UP-TO-DATE
:CordovaLib:compileReleaseRenderscript
:CordovaLib:generateReleaseResValues
:CordovaLib:generateReleaseResources
:CordovaLib:packageReleaseResources
:CordovaLib:processReleaseManifest
:CordovaLib:generateReleaseBuildConfig
:CordovaLib:processReleaseResources
:CordovaLib:generateReleaseSources
:CordovaLib:incrementalReleaseJavaCompilationSafeguard
:CordovaLib:compileReleaseJavaWithJavac
:CordovaLib:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processReleaseJavaRes

UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease
:CordovaLib:mergeReleaseJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease
:CordovaLib:bundleRelease
:prepareComAndroidSupportSupportV42400Library
:prepareComGoogleAndroidGmsPlayServicesBase980Library
:prepareComGoogleAndroidGmsPlayServicesBasement980Library
:prepareComGoogleAndroidGmsPlayServicesLocation980Library
:prepareComGoogleAndroidGmsPlayServicesMaps980Library
:prepareComGoogleAndroidGmsPlayServicesTasks980Library
:prepareDebugDependencies
:compileDebugAidl
:compileDebugRenderscript
:generateDebugResources
:mergeDebugResources
:processDebugManifest
:processDebugResources
:generateDebugSources
:compileDebugJavaWithJavac
:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:compileDebugSources
:mergeDebugAssets
:transformClassesWithDexForDebug
:mergeDebugJniLibFolders
:transformNative_libsWithMergeJniLibsForDebug
:transformResourcesWithMergeJavaResForDebug
:packageDebug
:assembleDebug
:cdvBuildDebug
BUILD SUCCESSFUL
Total time: 39.737 secs
Built the following apk(s): 
    /(path to the work dir)/test/platforms/android/build/outputs/apk/android-debug.apk
tarouboy commented 7 years ago

Thanks @wf9a5m75 I tried on a blank app and it works too!

So after all I guess it conflicts with another plugin cordova-plugin-googleplus which use the Google Play Services Lib as well.

The latest version of googlemaps plugin specified the Google Play Services version to 9.8.0 but on googleplus plugin they used "+". After changing the plugin.xml inside cordova-plugin-googleplus it solved the problem, @ChristophRettinger you can have a try if you are using the googleplus plugin as well.

from:

<framework src="com.google.android.gms:play-services-auth:+" />
<framework src="com.google.android.gms:play-services-identity:+" />

to:

<framework src="com.google.android.gms:play-services-auth:9.8.0" />
<framework src="com.google.android.gms:play-services-identity:9.8.0" />

Don't forget to remove android and add android to clear the cache.

ChristophRettinger commented 7 years ago

Hi, thanks for your answers. Still, its not working here. I do not have the Google Play Services plugin installed.

This is a full trace this time.

Microsoft Windows [Version 10.0.14393]
> ionic --version
2.1.8

> npm --version
4.0.2

> node --version
v6.9.1

> ionic start test --v2
+-- @angular/common@2.1.1
+-- @angular/compiler@2.1.1
+-- @angular/compiler-cli@2.1.1
| +-- @angular/tsc-wrapped@0.3.0
| | `-- tsickle@0.1.7
| |   `-- source-map-support@0.3.3
| |     `-- source-map@0.1.32
| +-- minimist@1.2.0
| `-- reflect-metadata@0.1.8
+-- @angular/core@2.1.1
+-- @angular/forms@2.1.1
+-- @angular/http@2.1.1
+-- @angular/platform-browser@2.1.1
+-- @angular/platform-browser-dynamic@2.1.1
+-- @angular/platform-server@2.1.1
| `-- parse5@2.2.3
+-- @ionic/app-scripts@0.0.45
| +-- autoprefixer@6.4.1
| | +-- browserslist@1.3.6
| | +-- caniuse-db@1.0.30000590
| | +-- normalize-range@0.1.2
| | +-- num2fraction@1.2.2
| | `-- postcss-value-parser@3.3.0
| +-- chalk@1.1.3
| | +-- ansi-styles@2.2.1
| | +-- escape-string-regexp@1.0.5
| | +-- has-ansi@2.0.0
| | | `-- ansi-regex@2.0.0
| | +-- strip-ansi@3.0.1
| | `-- supports-color@2.0.0
| +-- chokidar@1.6.1
| | +-- anymatch@1.3.0
| | | +-- arrify@1.0.1
| | | `-- micromatch@2.3.11
| | |   +-- arr-diff@2.0.0
| | |   | `-- arr-flatten@1.0.1
| | |   +-- array-unique@0.2.1
| | |   +-- braces@1.8.5
| | |   | +-- expand-range@1.8.2
| | |   | | `-- fill-range@2.2.3
| | |   | |   +-- is-number@2.1.0
| | |   | |   +-- isobject@2.1.0
| | |   | |   | `-- isarray@1.0.0
| | |   | |   `-- randomatic@1.1.6
| | |   | +-- preserve@0.2.0
| | |   | `-- repeat-element@1.1.2
| | |   +-- expand-brackets@0.1.5
| | |   | `-- is-posix-bracket@0.1.1
| | |   +-- extglob@0.3.2
| | |   +-- filename-regex@2.0.0
| | |   +-- kind-of@3.0.4
| | |   | `-- is-buffer@1.1.4
| | |   +-- normalize-path@2.0.1
| | |   +-- object.omit@2.0.1
| | |   | +-- for-own@0.1.4
| | |   | | `-- for-in@0.1.6
| | |   | `-- is-extendable@0.1.1
| | |   +-- parse-glob@3.0.4
| | |   | +-- glob-base@0.3.0
| | |   | `-- is-dotfile@1.0.2
| | |   `-- regex-cache@0.4.3
| | |     +-- is-equal-shallow@0.1.3
| | |     `-- is-primitive@2.0.0
| | +-- async-each@1.0.1
| | +-- glob-parent@2.0.0
| | +-- inherits@2.0.3
| | +-- is-binary-path@1.0.1
| | | `-- binary-extensions@1.7.0
| | +-- is-glob@2.0.1
| | | `-- is-extglob@1.0.0
| | +-- path-is-absolute@1.0.1
| | `-- readdirp@2.1.0
| |   +-- readable-stream@2.2.2
| |   | +-- buffer-shims@1.0.0
| |   | +-- core-util-is@1.0.2
| |   | +-- isarray@1.0.0
| |   | `-- process-nextick-args@1.0.7
| |   `-- set-immediate-shim@1.0.1
| +-- clean-css@3.4.19
| | +-- commander@2.8.1
| | | `-- graceful-readlink@1.0.1
| | `-- source-map@0.4.4
| |   `-- amdefine@1.0.1
| +-- cross-spawn@4.0.0
| | +-- lru-cache@4.0.2
| | | +-- pseudomap@1.0.2
| | | `-- yallist@2.0.0
| | `-- which@1.2.12
| |   `-- isexe@1.1.2
| +-- express@4.14.0
| | +-- accepts@1.3.3
| | | +-- mime-types@2.1.13
| | | | `-- mime-db@1.25.0
| | | `-- negotiator@0.6.1
| | +-- array-flatten@1.1.1
| | +-- content-disposition@0.5.1
| | +-- content-type@1.0.2
| | +-- cookie@0.3.1
| | +-- cookie-signature@1.0.6
| | +-- debug@2.2.0
| | | `-- ms@0.7.1
| | +-- depd@1.1.0
| | +-- encodeurl@1.0.1
| | +-- escape-html@1.0.3
| | +-- etag@1.7.0
| | +-- finalhandler@0.5.0
| | | +-- statuses@1.3.1
| | | `-- unpipe@1.0.0
| | +-- fresh@0.3.0
| | +-- merge-descriptors@1.0.1
| | +-- methods@1.1.2
| | +-- on-finished@2.3.0
| | | `-- ee-first@1.1.1
| | +-- parseurl@1.3.1
| | +-- path-to-regexp@0.1.7
| | +-- proxy-addr@1.1.2
| | | +-- forwarded@0.1.0
| | | `-- ipaddr.js@1.1.1
| | +-- qs@6.2.0
| | +-- range-parser@1.2.0
| | +-- send@0.14.1
| | | +-- destroy@1.0.4
| | | +-- http-errors@1.5.1
| | | | `-- setprototypeof@1.0.2
| | | `-- mime@1.3.4
| | +-- serve-static@1.11.1
| | +-- type-is@1.6.14
| | | `-- media-typer@0.3.0
| | +-- utils-merge@1.0.0
| | `-- vary@1.1.0
| +-- fs-extra@0.30.0
| | +-- graceful-fs@4.1.11
| | +-- jsonfile@2.4.0
| | +-- klaw@1.3.1
| | `-- rimraf@2.5.4
| +-- json-loader@0.5.4
| +-- node-sass@3.10.1
| | +-- async-foreach@0.1.3
| | +-- cross-spawn@3.0.1
| | +-- gaze@1.1.2
| | | `-- globule@1.1.0
| | +-- get-stdin@4.0.1
| | +-- glob@7.1.1
| | | +-- fs.realpath@1.0.0
| | | +-- inflight@1.0.6
| | | | `-- wrappy@1.0.2
| | | `-- once@1.4.0
| | +-- in-publish@2.0.0
| | +-- lodash.assign@4.2.0
| | +-- lodash.clonedeep@4.5.0
| | +-- meow@3.7.0
| | | +-- camelcase-keys@2.1.0
| | | | `-- camelcase@2.1.1
| | | +-- decamelize@1.2.0
| | | +-- loud-rejection@1.6.0
| | | | +-- currently-unhandled@0.4.1
| | | | | `-- array-find-index@1.0.2
| | | | `-- signal-exit@3.0.1
| | | +-- map-obj@1.0.1
| | | +-- normalize-package-data@2.3.5
| | | | +-- hosted-git-info@2.1.5
| | | | +-- is-builtin-module@1.0.0
| | | | `-- validate-npm-package-license@3.0.1
| | | |   +-- spdx-correct@1.0.2
| | | |   | `-- spdx-license-ids@1.2.2
| | | |   `-- spdx-expression-parse@1.0.4
| | | +-- read-pkg-up@1.0.1
| | | | +-- find-up@1.1.2
| | | | | `-- path-exists@2.1.0
| | | | `-- read-pkg@1.1.0
| | | |   +-- load-json-file@1.1.0
| | | |   | +-- parse-json@2.2.0
| | | |   | | `-- error-ex@1.3.0
| | | |   | |   `-- is-arrayish@0.2.1
| | | |   | +-- pify@2.3.0
| | | |   | `-- strip-bom@2.0.0
| | | |   |   `-- is-utf8@0.2.1
| | | |   `-- path-type@1.1.0
| | | +-- redent@1.0.0
| | | | +-- indent-string@2.1.0
| | | | | `-- repeating@2.0.1
| | | | |   `-- is-finite@1.0.2
| | | | `-- strip-indent@1.0.1
| | | `-- trim-newlines@1.0.0
| | +-- mkdirp@0.5.1
| | | `-- minimist@0.0.8
| | +-- nan@2.4.0
| | +-- node-gyp@3.4.0
| | | +-- fstream@1.0.10
| | | +-- nopt@3.0.6
| | | | `-- abbrev@1.0.9
| | | +-- npmlog@3.1.2
| | | | `-- gauge@2.6.0
| | | +-- osenv@0.1.3
| | | | +-- os-homedir@1.0.2
| | | | `-- os-tmpdir@1.0.2
| | | +-- path-array@1.0.1
| | | | `-- array-index@1.0.0
| | | |   `-- es6-symbol@3.1.0
| | | |     +-- d@0.1.1
| | | |     `-- es5-ext@0.10.12
| | | |       `-- es6-iterator@2.0.0
| | | +-- semver@5.3.0
| | | `-- tar@2.2.1
| | |   `-- block-stream@0.0.9
| | +-- npmlog@4.0.1
| | | +-- are-we-there-yet@1.1.2
| | | | +-- delegates@1.0.0
| | | | `-- readable-stream@2.2.2
| | | |   `-- isarray@1.0.0
| | | +-- console-control-strings@1.1.0
| | | +-- gauge@2.7.1
| | | | +-- aproba@1.0.4
| | | | +-- has-color@0.1.7
| | | | +-- has-unicode@2.0.1
| | | | `-- wide-align@1.1.0
| | | `-- set-blocking@2.0.0
| | +-- request@2.79.0
| | | +-- aws-sign2@0.6.0
| | | +-- aws4@1.5.0
| | | +-- caseless@0.11.0
| | | +-- combined-stream@1.0.5
| | | | `-- delayed-stream@1.0.0
| | | +-- extend@3.0.0
| | | +-- forever-agent@0.6.1
| | | +-- form-data@2.1.2
| | | | `-- asynckit@0.4.0
| | | +-- har-validator@2.0.6
| | | | +-- commander@2.9.0
| | | | +-- is-my-json-valid@2.15.0
| | | | | +-- generate-function@2.0.0
| | | | | +-- generate-object-property@1.2.0
| | | | | | `-- is-property@1.0.2
| | | | | `-- jsonpointer@4.0.0
| | | | `-- pinkie-promise@2.0.1
| | | |   `-- pinkie@2.0.4
| | | +-- hawk@3.1.3
| | | | +-- boom@2.10.1
| | | | +-- cryptiles@2.0.5
| | | | +-- hoek@2.16.3
| | | | `-- sntp@1.0.9
| | | +-- http-signature@1.1.1
| | | | +-- assert-plus@0.2.0
| | | | +-- jsprim@1.3.1
| | | | | +-- extsprintf@1.0.2
| | | | | +-- json-schema@0.2.3
| | | | | `-- verror@1.3.6
| | | | `-- sshpk@1.10.1
| | | |   +-- asn1@0.2.3
| | | |   +-- assert-plus@1.0.0
| | | |   +-- bcrypt-pbkdf@1.0.0
| | | |   +-- dashdash@1.14.1
| | | |   | `-- assert-plus@1.0.0
| | | |   +-- ecc-jsbn@0.1.1
| | | |   +-- getpass@0.1.6
| | | |   | `-- assert-plus@1.0.0
| | | |   +-- jodid25519@1.0.2
| | | |   +-- jsbn@0.1.0
| | | |   `-- tweetnacl@0.14.3
| | | +-- is-typedarray@1.0.0
| | | +-- isstream@0.1.2
| | | +-- json-stringify-safe@5.0.1
| | | +-- oauth-sign@0.8.2
| | | +-- qs@6.3.0
| | | +-- stringstream@0.0.5
| | | +-- tough-cookie@2.3.2
| | | +-- tunnel-agent@0.4.3
| | | `-- uuid@3.0.1
| | `-- sass-graph@2.1.2
| |   +-- lodash@4.16.6
| |   `-- yargs@4.8.1
| |     `-- yargs-parser@2.4.1
| |       `-- camelcase@3.0.0
| +-- os-name@2.0.1
| | +-- macos-release@1.0.0
| | `-- win-release@1.1.1
| +-- postcss@5.2.0
| | +-- js-base64@2.1.9
| | +-- source-map@0.5.6
| | `-- supports-color@3.1.2
| |   `-- has-flag@1.0.0
| +-- proxy-middleware@0.15.0
| +-- rollup@0.36.3
| | `-- source-map-support@0.4.6
| |   `-- source-map@0.5.6
| +-- rollup-plugin-commonjs@5.0.4
| | +-- acorn@4.0.3
| | +-- estree-walker@0.2.1
| | +-- magic-string@0.16.0
| | | `-- vlq@0.2.1
| | `-- resolve@1.1.7
| +-- rollup-plugin-json@2.0.2
| +-- rollup-plugin-node-builtins@2.0.0
| | +-- buffer-es6@4.9.3
| | +-- crypto-browserify@3.11.0
| | | +-- browserify-cipher@1.0.0
| | | | +-- browserify-aes@1.0.6
| | | | | `-- buffer-xor@1.0.3
| | | | +-- browserify-des@1.0.0
| | | | | `-- des.js@1.0.0
| | | | |   `-- minimalistic-assert@1.0.0
| | | | `-- evp_bytestokey@1.0.0
| | | +-- browserify-sign@4.0.0
| | | | +-- bn.js@4.11.6
| | | | +-- browserify-rsa@4.0.1
| | | | +-- elliptic@6.3.2
| | | | | +-- brorand@1.0.6
| | | | | `-- hash.js@1.0.3
| | | | `-- parse-asn1@5.0.0
| | | |   `-- asn1.js@4.9.0
| | | +-- create-ecdh@4.0.0
| | | +-- create-hash@1.1.2
| | | | +-- cipher-base@1.0.3
| | | | +-- ripemd160@1.0.1
| | | | `-- sha.js@2.4.8
| | | +-- create-hmac@1.1.4
| | | +-- diffie-hellman@5.0.2
| | | | `-- miller-rabin@4.0.0
| | | +-- pbkdf2@3.0.9
| | | +-- public-encrypt@4.0.0
| | | `-- randombytes@2.0.3
| | `-- process-es6@0.11.6
| +-- rollup-plugin-node-globals@1.0.9
| | `-- acorn@4.0.3
| +-- rollup-plugin-node-resolve@2.0.0
| | +-- browser-resolve@1.11.2
| | `-- builtin-modules@1.1.1
| +-- rollup-pluginutils@1.5.2
| | `-- minimatch@3.0.3
| |   `-- brace-expansion@1.1.6
| |     +-- balanced-match@0.4.2
| |     `-- concat-map@0.0.1
| +-- tiny-lr@1.0.3
| | +-- body@5.1.0
| | | +-- continuable-cache@0.3.1
| | | +-- error@7.0.2
| | | | +-- string-template@0.2.1
| | | | `-- xtend@4.0.1
| | | +-- raw-body@1.1.7
| | | | `-- bytes@1.0.0
| | | `-- safe-json-parse@1.0.1
| | +-- faye-websocket@0.10.0
| | | `-- websocket-driver@0.6.5
| | |   `-- websocket-extensions@0.1.1
| | +-- livereload-js@2.2.2
| | `-- object-assign@4.1.0
| +-- tslint@3.15.1
| | +-- colors@1.1.2
| | +-- diff@2.2.3
| | +-- findup-sync@0.3.0
| | | `-- glob@5.0.15
| | +-- optimist@0.6.1
| | | +-- minimist@0.0.10
| | | `-- wordwrap@0.0.3
| | `-- underscore.string@3.3.4
| |   +-- sprintf-js@1.0.3
| |   `-- util-deprecate@1.0.2
| +-- tslint-eslint-rules@1.5.0
| | `-- doctrine@0.7.2
| |   +-- esutils@1.1.6
| |   `-- isarray@0.0.1
| +-- uglify-js@2.7.3
| | +-- async@0.2.10
| | +-- source-map@0.5.6
| | +-- uglify-to-browserify@1.0.2
| | `-- yargs@3.10.0
| |   +-- camelcase@1.2.1
| |   +-- cliui@2.1.0
| |   | +-- center-align@0.1.3
| |   | | +-- align-text@0.1.4
| |   | | | +-- longest@1.0.1
| |   | | | `-- repeat-string@1.6.1
| |   | | `-- lazy-cache@1.0.4
| |   | +-- right-align@0.1.3
| |   | `-- wordwrap@0.0.2
| |   `-- window-size@0.1.0
| +-- webpack@2.1.0-beta.27
| | +-- acorn@4.0.3
| | +-- ajv@4.9.0
| | | +-- co@4.6.0
| | | `-- json-stable-stringify@1.0.1
| | |   `-- jsonify@0.0.0
| | +-- ajv-keywords@1.1.1
| | +-- async@2.1.4
| | +-- enhanced-resolve@2.3.0
| | +-- interpret@1.0.1
| | +-- loader-runner@2.2.0
| | +-- loader-utils@0.2.16
| | | +-- big.js@3.1.3
| | | +-- emojis-list@2.1.0
| | | `-- json5@0.5.1
| | +-- memory-fs@0.3.0
| | | +-- errno@0.1.4
| | | | `-- prr@0.0.0
| | | `-- readable-stream@2.2.2
| | |   `-- isarray@1.0.0
| | +-- node-libs-browser@1.1.1
| | | +-- assert@1.4.1
| | | +-- browserify-zlib@0.1.4
| | | | `-- pako@0.2.9
| | | +-- buffer@4.9.1
| | | | +-- base64-js@1.2.0
| | | | +-- ieee754@1.1.8
| | | | `-- isarray@1.0.0
| | | +-- console-browserify@1.1.0
| | | | `-- date-now@0.1.4
| | | +-- constants-browserify@1.0.0
| | | +-- domain-browser@1.1.7
| | | +-- events@1.1.1
| | | +-- https-browserify@0.0.1
| | | +-- os-browserify@0.2.1
| | | +-- path-browserify@0.0.0
| | | +-- process@0.11.9
| | | +-- punycode@1.4.1
| | | +-- querystring-es3@0.2.1
| | | +-- readable-stream@2.2.2
| | | | `-- isarray@1.0.0
| | | +-- stream-browserify@2.0.1
| | | | `-- readable-stream@2.2.2
| | | |   `-- isarray@1.0.0
| | | +-- stream-http@2.5.0
| | | | +-- builtin-status-codes@2.0.0
| | | | +-- readable-stream@2.2.2
| | | | | `-- isarray@1.0.0
| | | | `-- to-arraybuffer@1.0.1
| | | +-- string_decoder@0.10.31
| | | +-- timers-browserify@1.4.2
| | | +-- tty-browserify@0.0.0
| | | +-- url@0.11.0
| | | | +-- punycode@1.3.2
| | | | `-- querystring@0.2.0
| | | +-- util@0.10.3
| | | | `-- inherits@2.0.1
| | | `-- vm-browserify@0.0.4
| | |   `-- indexof@0.0.1
| | +-- source-map@0.5.6
| | +-- tapable@0.2.4
| | +-- watchpack@1.1.0
| | | `-- async@2.0.0-rc.4
| | +-- webpack-sources@0.1.3
| | | +-- source-list-map@0.1.6
| | | `-- source-map@0.5.6
| | `-- yargs@6.4.0
| |   +-- camelcase@3.0.0
| |   +-- cliui@3.2.0
| |   | `-- wrap-ansi@2.1.0
| |   +-- get-caller-file@1.0.2
| |   +-- os-locale@1.4.0
| |   | `-- lcid@1.0.0
| |   |   `-- invert-kv@1.0.0
| |   +-- require-directory@2.1.1
| |   +-- require-main-filename@1.0.1
| |   +-- string-width@1.0.2
| |   | +-- code-point-at@1.1.0
| |   | `-- is-fullwidth-code-point@1.0.0
| |   |   `-- number-is-nan@1.0.1
| |   +-- which-module@1.0.0
| |   +-- window-size@0.2.0
| |   +-- y18n@3.2.1
| |   `-- yargs-parser@4.1.0
| `-- ws@1.1.1
|   +-- options@0.0.6
|   `-- ultron@1.0.2
+-- @ionic/storage@1.1.6
| +-- @types/localforage@0.0.30
| +-- localforage@1.4.3
| | `-- lie@3.0.2
| |   +-- es3ify@0.1.4
| |   | +-- esprima-fb@3001.1.0-dev-harmony-fb
| |   | +-- jstransform@3.0.0
| |   | | +-- base62@0.1.1
| |   | | `-- source-map@0.1.31
| |   | `-- through@2.3.8
| |   +-- immediate@3.0.6
| |   +-- inline-process-browser@1.0.0
| |   | +-- falafel@1.2.0
| |   | | +-- acorn@1.2.2
| |   | | +-- foreach@2.0.5
| |   | | `-- object-keys@1.0.11
| |   | `-- through2@0.6.5
| |   |   `-- readable-stream@1.0.34
| |   `-- unreachable-branch-transform@0.3.0
| |     +-- esmangle-evaluator@1.0.1
| |     `-- recast@0.10.43
| |       +-- ast-types@0.8.15
| |       +-- esprima-fb@15001.1001.0-dev-harmony-fb
| |       +-- private@0.1.6
| |       `-- source-map@0.5.6
| `-- localforage-cordovasqlitedriver@1.5.0
+-- ionic-angular@2.0.0-rc.3
+-- ionic-native@2.2.3
+-- ionicons@3.0.0
+-- rxjs@5.0.0-beta.12
| `-- symbol-observable@1.0.4
+-- typescript@2.0.6
`-- zone.js@0.6.26
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
Adding initial native plugins
Initializing cordova project without CLI
Saving your Ionic app state of platforms and plugins
Saved platform
Saved plugins
Saved package.json

> cd test

> ionic platform add android
Adding android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: com.ionicframework.test876799
        Name: test
        Activity: MainActivity
        Android target: android-24
Subproject Path: CordovaLib
Android project created with cordova-android@6.0.0
Installing "cordova-plugin-console" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.436 secs
Installing "cordova-plugin-device" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.325 secs
Installing "cordova-plugin-splashscreen" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.34 secs
Installing "cordova-plugin-statusbar" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.253 secs
Installing "cordova-plugin-whitelist" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.265 secs
               This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.
Installing "ionic-plugin-keyboard" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.19 secs

> ionic platform list
Installed platforms:
  android 6.0.0
Available platforms:
  amazon-fireos ~3.6.3 (deprecated)
  blackberry10 ~3.8.0
  browser ~4.1.0
  firefoxos ~3.6.3
  webos ~3.7.0
  windows ~4.4.0
  wp8 ~3.8.2 (deprecated)

> ionic plugin add https://github.com/mapsplugin/cordova-plugin-googlemaps --save --variable API_KEY_FOR_ANDROID="..."
Fetching plugin "https://github.com/mapsplugin/cordova-plugin-googlemaps" via git clone
Repository "https://github.com/mapsplugin/cordova-plugin-googlemaps" checked out to git ref "master".
Installing "cordova-plugin-googlemaps" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.267 secs
Subproject Path: CordovaLib
             In order to run this plugin, you need to obtain Google Maps API key for Android.
             Visit https://github.com/mapsplugin/cordova-plugin-googlemaps/wiki/Installation
             Check our release notes.
             https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Release-Notes
Saved plugin info for "cordova-plugin-googlemaps" to config.xml

> ionic plugin add cordova-plugin-geofence
Fetching plugin "cordova-plugin-geofence" via npm
Installing "cordova-plugin-geofence" for android
Fetching plugin "cordova-plugin-compat" via npm
Installing "cordova-plugin-compat" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.685 secs
Fetching plugin "es6-promise-plugin" via npm
Installing "es6-promise-plugin" for android
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.277 secs
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:clean
:CordovaLib:clean
BUILD SUCCESSFUL
Total time: 3.186 secs
Subproject Path: CordovaLib

> ionic build android
> ionic-hello-world@ ionic:build E:\puw\test
> ionic-app-scripts build
[09:24:50]  ionic-app-scripts 0.0.45
[09:24:50]  build prod started ...
[09:24:50]  clean started ...
[09:24:50]  clean finished in 3 ms
[09:24:50]  copy started ...
[09:24:50]  ngc started ...
[09:24:50]  copy finished in 61 ms
[09:25:16]  ngc finished in 26.15 s
[09:25:16]  webpack started ...
[09:25:24]  webpack finished in 7.79 s
[09:25:24]  uglifyjs started ...
[09:25:24]  sass started ...
[09:25:26]  sass finished in 2.39 s
[09:25:26]  cleancss started ...
[09:25:28]  cleancss finished in 2.09 s
[09:25:35]  uglifyjs finished in 11.13 s
[09:25:35]  build prod finished in 45.10 s
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:CordovaLib:preBuild
 UP-TO-DATE
:CordovaLib:preDebugBuild
 UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl
:CordovaLib:compileDebugNdk
 UP-TO-DATE
:CordovaLib:compileLint
:CordovaLib:copyDebugLint
 UP-TO-DATE
:CordovaLib:mergeDebugShaders
:CordovaLib:compileDebugShaders
:CordovaLib:generateDebugAssets
:CordovaLib:mergeDebugAssets
:CordovaLib:mergeDebugProguardFiles
:CordovaLib:packageDebugRenderscript
UP-TO-DATE
:CordovaLib:compileDebugRenderscript
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:processDebugManifest
:CordovaLib:generateDebugBuildConfig
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:incrementalDebugJavaCompilationSafeguard
:CordovaLib:compileDebugJavaWithJavac
:CordovaLib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processDebugJavaRes
 UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug
:CordovaLib:mergeDebugJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
:CordovaLib:bundleDebug
:prepareAndroidCordovaLibUnspecifiedDebugLibrary
:preReleaseBuild UP-TO-DATE
:CordovaLib:preReleaseBuild
UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl
:CordovaLib:compileReleaseNdk
UP-TO-DATE
:CordovaLib:copyReleaseLint
 UP-TO-DATE
:CordovaLib:mergeReleaseShaders
:CordovaLib:compileReleaseShaders
:CordovaLib:generateReleaseAssets
:CordovaLib:mergeReleaseAssets
:CordovaLib:mergeReleaseProguardFiles
:CordovaLib:packageReleaseRenderscript
 UP-TO-DATE
:CordovaLib:compileReleaseRenderscript
:CordovaLib:generateReleaseResValues
:CordovaLib:generateReleaseResources
:CordovaLib:packageReleaseResources
:CordovaLib:processReleaseManifest
:CordovaLib:generateReleaseBuildConfig
:CordovaLib:processReleaseResources
:CordovaLib:generateReleaseSources
:CordovaLib:incrementalReleaseJavaCompilationSafeguard
:CordovaLib:compileReleaseJavaWithJavac
:CordovaLib:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processReleaseJavaRes
UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease
:CordovaLib:mergeReleaseJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease
:CordovaLib:bundleRelease
:prepareComAndroidSupportSupportV42400Library
:prepareComGoogleAndroidGmsPlayServicesBase1001Library
:prepareComGoogleAndroidGmsPlayServicesBasement1001Library
:prepareComGoogleAndroidGmsPlayServicesLocation1001Library
:prepareComGoogleAndroidGmsPlayServicesMaps980Library
:prepareComGoogleAndroidGmsPlayServicesTasks1001Library
:prepareDebugDependencies
:compileDebugAidl
:compileDebugRenderscript
:generateDebugBuildConfig
:generateDebugResValues
:generateDebugResources
:mergeDebugResources
:processDebugManifest
:processDebugResources
:generateDebugSources
:incrementalDebugJavaCompilationSafeguard
:compileDebugJavaWithJavac
:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
E:\puw\test\platforms\android\src\plugin\google\maps\PluginUtil.java:135: error: cannot access AbstractSafeParcelable
    Builder builder = LatLngBounds.builder();
                                  ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
Note: Some input files use or override a deprecated API.
:compileDebugJavaWithJavac FAILED
Note: Recompile with -Xlint:deprecation for details.
1 error
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.
BUILD FAILED
Total time: 41.392 secs
Error: cmd: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
E:\puw\test\platforms\android\src\plugin\google\maps\PluginUtil.java:135: error: cannot access AbstractSafeParcelable
    Builder builder = LatLngBounds.builder();
                                  ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
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.

The difference that I can spot is that I see no app-script execution in your trace (which ionic version are you using) and indeed a different google play library version 980 for you and 1001 for me. I did not add the cordova-plugin-googleplus plugin.

Adding the aforemention pluging and patching the plugin.xml still leads to an error

> ionic build android
> ionic-hello-world@ ionic:build E:\puw\test
> ionic-app-scripts build
[09:42:30]  ionic-app-scripts 0.0.45
[09:42:30]  build prod started ...
[09:42:30]  clean started ...
[09:42:30]  clean finished in 7 ms
[09:42:30]  copy started ...
[09:42:30]  ngc started ...
[09:42:30]  copy finished in 166 ms
[09:42:53]  ngc finished in 22.70 s
[09:42:53]  webpack started ...
[09:43:00]  webpack finished in 7.14 s
[09:43:00]  uglifyjs started ...
[09:43:00]  sass started ...
[09:43:02]  sass finished in 1.95 s
[09:43:02]  cleancss started ...
[09:43:04]  cleancss finished in 2.11 s
[09:43:11]  uglifyjs finished in 10.66 s
[09:43:11]  build prod finished in 40.52 s
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:preBuild
 UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl
UP-TO-DATE
:CordovaLib:compileDebugNdk UP-TO-DATE
:CordovaLib:compileLint
 UP-TO-DATE
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugShaders
UP-TO-DATE
:CordovaLib:compileDebugShaders
 UP-TO-DATE
:CordovaLib:generateDebugAssets
 UP-TO-DATE
:CordovaLib:mergeDebugAssets
UP-TO-DATE
:CordovaLib:mergeDebugProguardFiles
 UP-TO-DATE
:CordovaLib:packageDebugRenderscript
 UP-TO-DATE
:CordovaLib:compileDebugRenderscript
UP-TO-DATE
:CordovaLib:generateDebugResValues
 UP-TO-DATE
:CordovaLib:generateDebugResources UP-TO-DATE
:CordovaLib:packageDebugResources
UP-TO-DATE
:CordovaLib:processDebugManifest
 UP-TO-DATE
:CordovaLib:generateDebugBuildConfig
 UP-TO-DATE
:CordovaLib:processDebugResources
 UP-TO-DATE
:CordovaLib:generateDebugSources
 UP-TO-DATE
:CordovaLib:incrementalDebugJavaCompilationSafeguard
 UP-TO-DATE
:CordovaLib:compileDebugJavaWithJavac
 UP-TO-DATE
:CordovaLib:processDebugJavaRes
UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug
 UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug
UP-TO-DATE
:CordovaLib:mergeDebugJniLibFolders
 UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
UP-TO-DATE
:CordovaLib:bundleDebug
 UP-TO-DATE
:prepareAndroidCordovaLibUnspecifiedDebugLibrary
 UP-TO-DATE
:preReleaseBuild UP-TO-DATE
:CordovaLib:preReleaseBuild
 UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl
 UP-TO-DATE
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint
UP-TO-DATE
:CordovaLib:mergeReleaseShaders
 UP-TO-DATE
:CordovaLib:compileReleaseShaders
UP-TO-DATE
:CordovaLib:generateReleaseAssets UP-TO-DATE
:CordovaLib:mergeReleaseAssets
 UP-TO-DATE
:CordovaLib:mergeReleaseProguardFiles
UP-TO-DATE
:CordovaLib:packageReleaseRenderscript
 UP-TO-DATE
:CordovaLib:compileReleaseRenderscript
 UP-TO-DATE
:CordovaLib:generateReleaseResValues
 UP-TO-DATE
:CordovaLib:generateReleaseResources
 UP-TO-DATE
:CordovaLib:packageReleaseResources
 UP-TO-DATE
:CordovaLib:processReleaseManifest
UP-TO-DATE
:CordovaLib:generateReleaseBuildConfig
 UP-TO-DATE
:CordovaLib:processReleaseResources
 UP-TO-DATE
:CordovaLib:generateReleaseSources
 UP-TO-DATE
:CordovaLib:incrementalReleaseJavaCompilationSafeguard
 UP-TO-DATE
:CordovaLib:compileReleaseJavaWithJavac
UP-TO-DATE
:CordovaLib:processReleaseJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease
 UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease
 UP-TO-DATE
:CordovaLib:mergeReleaseJniLibFolders
 UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease
 UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease
 UP-TO-DATE
:CordovaLib:bundleRelease
UP-TO-DATE
:prepareComAndroidSupportSupportV42400Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesAuth1001Library
UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesAuthBase1001Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesBase1001Library
UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesBasement1001Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesIdentity1001Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesLocation1001Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesMaps980Library
 UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesTasks1001Library
 UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl
 UP-TO-DATE
:compileDebugRenderscript
 UP-TO-DATE
:generateDebugBuildConfig
UP-TO-DATE
:generateDebugResValues
 UP-TO-DATE
:generateDebugResources UP-TO-DATE
:mergeDebugResources
 UP-TO-DATE
:processDebugManifest
UP-TO-DATE
:processDebugResources
 UP-TO-DATE
:generateDebugSources UP-TO-DATE
:incrementalDebugJavaCompilationSafeguard
 UP-TO-DATE
:compileDebugJavaWithJavac
:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
E:\puw\test\platforms\android\src\plugin\google\maps\PluginUtil.java:135: error: cannot access AbstractSafeParcelable
    Builder builder = LatLngBounds.builder();
                                  ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
:compileDebugJavaWithJavac FAILED
FAILURE: Build failed with an exception.
* What went wrong:
BUILD FAILED
Total time: 4.612 secs
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.
Error: cmd: Command failed with exit code 1 Error output:
E:\puw\test\platforms\android\src\plugin\google\maps\PluginUtil.java:135: error: cannot access AbstractSafeParcelable
    Builder builder = LatLngBounds.builder();
                                  ^
  class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
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.

There is still the prepareComGoogleAndroidGmsPlayServicesAuth1001Library in use :(

regards

ValentinPrototype commented 7 years ago

@ChristophRettinger Can you post the content of your platforms/android/project.properties?

ChristophRettinger commented 7 years ago
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-24
android.library.reference.1=CordovaLib
cordova.system.library.1=com.google.android.gms:play-services-maps:9.8.0
cordova.system.library.2=com.google.android.gms:play-services-location:9.8.0
cordova.system.library.3=com.google.android.gms:play-services-location:+
cordova.system.library.4=com.google.android.gms:play-services-auth:+
cordova.system.library.5=com.google.android.gms:play-services-identity:+
ValentinPrototype commented 7 years ago

So, what currently solves our build problem is manually setting all + to 9.8.0, likes this:

target=android-24
android.library.reference.1=CordovaLib
cordova.system.library.1=com.google.android.gms:play-services-maps:9.8.0
cordova.system.library.2=com.google.android.gms:play-services-location:9.8.0
cordova.system.library.3=com.google.android.gms:play-services-location:9.8.0
cordova.system.library.4=com.google.android.gms:play-services-auth:9.8.0
cordova.system.library.5=com.google.android.gms:play-services-identity:9.8.0

While not really a solution, it's a temporary workaround and I hope it works for you too.

ChristophRettinger commented 7 years ago

Yes, this solves it for me as well. When will this file be overridden?

Thanks guys for your help. Very much appreciated.

ValentinPrototype commented 7 years ago

Pretty much any time you touch the android platform or plugins, so e.g. on plugin add.

ChristophRettinger commented 7 years ago

OK, thanks. I will notice if I have to change it back :D. Lets hope that one day we can skip this workaround.

Ross-Rawlins commented 7 years ago

@ValentinPrototype I am trying your work around and its still throwing hte same issue where it tells me that Execution failed for task ':compileArmv7DebugJavaWithJavac'.

ValentinPrototype commented 7 years ago

@Ross-Rawlins Can you post the content of your platforms/android/project.properties? Any + in there might lead to issues with plugins that do not support the latest libraries.

Ross-Rawlins commented 7 years ago

target=android-23 android.library.reference.1=CordovaLib cordova.gradle.include.1=com.transistorsoft.cordova.background-geolocation/MobileApp-build.gradle cordova.gradle.include.2=cordova-plugin-crosswalk-webview/MobileApp-xwalk.gradle cordova.system.library.1=com.android.support:support-v4:+ cordova.system.library.2=com.android.support:appcompat-v7:+ cordova.system.library.3=com.google.android.gms:play-services-location:+ cordova.system.library.4=com.squareup.okhttp3:okhttp:3+ cordova.system.library.5=com.google.android.gms:play-services-analytics:+ cordova.gradle.include.3=phonegap-plugin-barcodescanner/MobileApp-barcodescanner.gradle

Ross-Rawlins commented 7 years ago

I swapped out the Plusses and it still broke it.

ValentinPrototype commented 7 years ago

Sorry, that sucks. You may try to update your target from android-23 to android-24 (Update the SDK with the Android SDK manager) and see if that solves the issue. Other than that, I can't help further :(

pke commented 7 years ago

This plugin is pinning versions of GMS Google Play Services. That is very uncommon practice. It automatically forces other plugins using the same version as this plugin. Of course thats prone to produce the errors you all see. Fork this plugin and change its pinned Google Play Services from a specific version to "+", which means use the newest SDK avail.

wf9a5m75 commented 7 years ago

@pke You just claim, but you don't provide any solution including other threads. This is not acceptable.

You should provide solution. Just claimming is not acceptable. Claimming, but provide alternative idea or improve idea are acceptable. I feel you are stressful a little.

pke commented 7 years ago

I provided a solution. Adhere to cooperative plugin specs and not pin versions. It's your plugin though and I might fork out eventually as you suggested.

Wish the plugin was closer to the maps SDK API surface though. Especially not adding markers asynchronously which makes everything overly complicated.

But overall you did good work with this plugin and since its for free I should stop complaining.

I especially like how you managed to embed the map in a div layout, which the mapbox plugin can't do.

I dream of a Cordova map framework that provides a common API to Google maps, here maps, mapbox, mapkit and as a web fallback leaflet. Each map adapter is provided in its own plugin. The main framework plugin using the configured map adapter under the hood but the Cordova user programs against a common API. With your experience in map plugins, do you think that's possible?

wf9a5m75 commented 7 years ago

The below is description to understand the risk of specifying the latest version.

Not pointing finger to @pke


In general software development (not Cordova), pinning the dependency library version is very common. Because there is no guarantee to keep the backward compatibility. If the dependency library developer changes without backward compatibility, the software also have to change.

And for this plugin, I faces couple of times in last three years. Specifying the latest version of the google play services, very high risk. Someone could build the program yesterday, but another person can not build the same program today.

For example, the Google Play Services 10.0.0 causes building error for this plugin, because the Google Play Services 10.0.0 includes bug. That's why Google released the library 10.0.1 soon after.

Do you take over all error claims forever?

In general, the software developers have to resolve the version conflict by themselves. Choose the libraries, or modify the code.


I don't know other Cordova plugin developers recognize this problem. But the Google Play Services are very unstable. Google releases the library that has some bugs. That's why the version number is pinned, and this plugin specifies only two libraries:

<framework src="com.google.android.gms:play-services-maps:9.8.0" />
<framework src="com.google.android.gms:play-services-location:9.8.0" />

Putting the native views under the browser view is very difficult. Even for the v2 of this plugin, I haven't satisfied yet.

Cordova had a mechanism that is similar with your idea. (I forgot the method name though)

But Cordova team decided the Cordova framework should not provide the method, and leave to the plugin developer choice.

For the reason, Cordova (probably) won't provide the mechanism.

ValentinPrototype commented 7 years ago

I am very thankful for your work @wf9a5m75, this is a great plugin and it adds a lot of value to the Cordova ecosystem. That some people in this thread feel entitled to criticize something you do in your spare time is a problem with the new accessibility of Open Source. It's especially annoying if those people do not contribute themselves.

It's just that personally, I would accept Bugs in the Google Play Services library (which get updated very quickly) rather than figuring out how sort out dependency issues with other Cordova plugins. Since things like platforms/android/project.properties is typically not under version control and get's overwritten when installing new plugins, I'm not sure how to handle this for distributed projects (two developers working on the same codebase) or automated builds.

Do you have a suggestion how we should handle the Android dependencies issues with other plugins?

pke commented 7 years ago

@ValentinPrototype

Do you have a suggestion how we should handle the Android dependencies issues with other plugins?

The suggestion was to not pin the version in any cordova plugin. Because that is bad style and forces other plugins to use the same version this plugin has pinned. And that very version could be a buggy one. So the argument @wf9a5m75 makes is void. You specify the minimum required version (that is supposed to be bug-free) but you are not forcing others to a specific version. This concept is well established in software development. If Play Services 10.0.0 causes (caused) build errors in this plugin (don't know which those were), then developers can themself revert playservices back to the previous version or pin this plugin (temporarily) to the old version. Who says 10.0.1 is bug free? Doesn't gradle offer a "minimum" dependency instead of "+" and a fixed dependency?

teloconf commented 7 years ago

For me it works with: target=android-24 cordova.system.library.1=com.google.android.gms:play-services-maps:10.0.0 cordova.system.library.2=com.google.android.gms:play-services-location:10.0.0 cordova.system.library.5=com.google.android.gms:play-services-identity:10.0.0