Cordrova 后台地理位置 phonegap 构建失败
Posted
技术标签:
【中文标题】Cordrova 后台地理位置 phonegap 构建失败【英文标题】:Cordrova background geolocation phonegap build fails 【发布时间】:2017-11-21 20:58:01 【问题描述】:我已经安装了 cordova-plugin-mauron85-background-geolocation
但在 android 上构建失败并显示此消息,我无法找出问题所在。
这是来自 phonegap 构建日志的错误消息。
在哪里: 构建文件'/project/build.gradle'行:253
出了什么问题: 评估根项目“项目”时出现问题。
无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象获取未知属性“GOOGLE_PLAY_SERVICES_VERSION”。
这是我的 config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="no.twn.androidapp" version="1.0.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>temp</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<preference name="phonegap-version" value="cli-6.5.0" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="15" />
<preference name="android-build-tool" value="gradle" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<engine name="ios" spec="^4.4.0" />
<engine name="android" spec="^6.3.0" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<plugin name="cordova-plugin-mauron85-background-geolocation" spec="^2.3.3">
<variable name="GOOGLE_PLAY_SERVICES_VERSION" value="+" />
<variable name="ICON" value="@mipmap/icon" />
<variable name="SMALL_ICON" value="@mipmap/icon" />
<variable name="ACCOUNT_NAME" value="@string/app_name" />
<variable name="ACCOUNT_LABEL" value="@string/app_name" />
<variable name="ACCOUNT_TYPE" value="$PACKAGE_NAME.account" />
<variable name="CONTENT_AUTHORITY" value="$PACKAGE_NAME" />
<variable name="ALWAYS_USAGE_DESCRIPTION" value="This app always requires location tracking" />
</plugin>
</widget>
【问题讨论】:
【参考方案1】:这些天我也一直在努力在 Phonegap Build 中运行这个插件,以下是我的发现:
不幸的是,2.3.x 版本似乎只适用于尚未supported 的 v2.6.0 android。 尝试使用 v2.2.5 的插件,它似乎可以在 PB 中运行(因为该插件的第 3 版尚未在 cordova repo 中发布)。
【讨论】:
【参考方案2】:这可能会有所帮助: 为了与其他插件兼容,您还可以设置特定的 google play 版本。以下示例将 google play 服务锁定到版本 11.0.1 以与 phonegap-plugin-push 兼容。注意:请务必查阅其他插件的文档以找出正确的 GOOGLE_PLAY_SERVICES_VERSION。
【讨论】:
【参考方案3】:我也有同样的问题。 我尝试更新android sdk,但没有奏效。
[
我尝试删除并添加平台 android,但没有成功。 我尝试删除并添加cordova-plugin-backgroud-geolocation,并且成功了。
[
【讨论】:
我从您的图像中看到构建成功,但是当您通过 phonegap 构建它时它正在工作。我在我的机器上也有一个成功的构建,但当我用 phonegap 构建它时没有。顺便提一句。在我看来,phonegap 使用的 android 版本低于我使用的 6.1.3 我使用 6.3.0,我认为插件需要 6.3.0。以上是关于Cordrova 后台地理位置 phonegap 构建失败的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 iPhone 上的 phonegap 应用程序中在后台跟踪 gps 位置?
Phonegap 每 5 分钟在后台唤醒应用程序以检查位置 iOS
BackgroundFetch / 使用PhoneGap Build的后台运行应用程序