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的后台运行应用程序

IOS背景中具有地理位置的phonegap

Phonegap WatchPosition 停止更新。忙?

如果应用程序发送到后台,地理定位会失败