【问题标题】:Phonegap diagnostic plugin not workingPhonegap 诊断插件不起作用
【发布时间】:2016-06-06 16:20:16
【问题描述】:

我正在尝试使用 Phonegap 插件诊断,但它不起作用。这是我在我的 cnfig.xml 中添加它的方法

<widget 
xmlns="http://www.w3.org/ns/widgets" 
xmlns:gap="http://phonegap.com/ns/1.0" 
id="com.crondale.tippnett" 
version="1.1.10">
<name>TippNett</name>
<description>TippNett er et system for å som bidrar til bedre massebalanse.   Systemet finner anlegg i nærheten med motsatt massebehov. Det bidrar til kortere kjørelengde og raskere anleggsutførsel. Du sparer penger, i tillegg til at miljøet blir spart for CO2 utslipp.</description>
<author href="http://www.crondale.com" email="support@crondale.com">Crondale</author>
<content src="index.html" />
<access origin="*" />
<preference name="SplashScreen" value="screen" />
<preference name="windows-target-version" value="8.0" />
<preference name="windows-phone-target-version" value="8.1" />
<preference name="target-device" value="universal" />

<platform name="android">
    <preference name="orientation" value="portrait" />
    <preference name="android-build-tool" value="gradle" />
</platform>

<platform name="ios">
    <preference name="orientation" value="portrait" />
</platform>

<gap:plugin name="cordova-plugin-whitelist" source="npm" version="1.0.0" />
<gap:plugin name="cordova-plugin-device" source="npm" version="1.0.1" />
<gap:plugin name="cordova-plugin-inappbrowser" source="npm" version="1.0.1" />
<gap:plugin name="cordova-plugin-network-information" source="npm" version="1.2.1" />
<gap:plugin name="cordova-plugin-geolocation" source="npm"/>


// here I add it
<gap:plugin name="cordova.plugins.diagnostic" source="npm" />


  ....
</widget>

这是我在 index.js 中的代码

function onDeviceReady() {
         // Handle the Cordova pause and resume events

         alert(cordova.plugins); // I get un-define here
        cordova.plugins.diagnostic.isLocationEnabledSetting(function(enabled){
            alert(11);
        if(enabled)
        {
            alert("Location Setting is enabled");
        }
        else
        {
            alert("Location Setting is disabled");
        }
    }, function(error){
        alert("The following error occurred: "+error);
    });

我在 android 和 ios 上都试过了。但是我在他们两个中都得到了相同的结果。

这是在我的构建日志中

Build Date: 2016-06-06 07:18:09 +0000
  Build option --'' not recognized (ignoring).
  Running: /project/gradlew cdvBuildRelease -b /project/build.gradle -Dorg.gradle.daemon=true -PcdvBuildMultipleApks=false
  :preBuild
  :compileReleaseNdk
  :preReleaseBuild
  :checkReleaseManifest
  :preDebugBuild
  :CordovaLib:compileLint
  :CordovaLib:copyDebugLint UP-TO-DATE
  :CordovaLib:mergeDebugProguardFiles
  :CordovaLib:preBuild
  :CordovaLib:preDebugBuild
  :CordovaLib:checkDebugManifest
  :CordovaLib:prepareDebugDependencies
  :CordovaLib:compileDebugAidl
  :CordovaLib:compileDebugRenderscript
  :CordovaLib:generateDebugBuildConfig
  :CordovaLib:generateDebugAssets UP-TO-DATE
  :CordovaLib:mergeDebugAssets
  :CordovaLib:generateDebugResValues
  :CordovaLib:generateDebugResources
  :CordovaLib:packageDebugResources
  :CordovaLib:processDebugManifest
  :CordovaLib:processDebugResources
  :CordovaLib:generateDebugSources
  :CordovaLib:compileDebugJavaNote: Some input files use or override a deprecated API.
  Note: Recompile with -Xlint:deprecation for details.

  :CordovaLib:processDebugJavaRes UP-TO-DATE
  :CordovaLib:packageDebugJar
  :CordovaLib:compileDebugNdk
  :CordovaLib:packageDebugJniLibs UP-TO-DATE
  :CordovaLib:packageDebugLocalJar UP-TO-DATE
  :CordovaLib:packageDebugRenderscript UP-TO-DATE
  :CordovaLib:bundleDebug
  :CordovaLib:copyReleaseLint UP-TO-DATE
  :CordovaLib:mergeReleaseProguardFiles
  :CordovaLib:preReleaseBuild
  :CordovaLib:checkReleaseManifest
  :CordovaLib:prepareReleaseDependencies
  :CordovaLib:compileReleaseAidl
  :CordovaLib:compileReleaseRenderscript
  :CordovaLib:generateReleaseBuildConfig
  :CordovaLib:generateReleaseAssets UP-TO-DATE
  :CordovaLib:mergeReleaseAssets
  :CordovaLib:generateReleaseResValues
  :CordovaLib:generateReleaseResources
  :CordovaLib:packageReleaseResources
  :CordovaLib:processReleaseManifest
  :CordovaLib:processReleaseResources
  :CordovaLib:generateReleaseSources
  :CordovaLib:compileReleaseJavaNote: Some input files use or override a deprecated API.
  Note: Recompile with -Xlint:deprecation for details.

  :CordovaLib:processReleaseJavaRes UP-TO-DATE
  :CordovaLib:packageReleaseJar
  :CordovaLib:compileReleaseNdk
  :CordovaLib:packageReleaseJniLibs UP-TO-DATE
  :CordovaLib:packageReleaseLocalJar UP-TO-DATE
  :CordovaLib:packageReleaseRenderscript UP-TO-DATE
  :CordovaLib:bundleRelease
  :prepareComAndroidSupportAnimatedVectorDrawable2340Library
  :prepareComAndroidSupportAppcompatV72340Library
  :prepareComAndroidSupportSupportV42340Library
  :prepareComAndroidSupportSupportVectorDrawable2340Library
  :prepareProjectCordovaLibUnspecifiedReleaseLibrary
  :prepareReleaseDependencies
  :compileReleaseAidl
  :compileReleaseRenderscript
  :generateReleaseBuildConfig
  :generateReleaseAssets UP-TO-DATE
  :mergeReleaseAssets
  :generateReleaseResValues
  :generateReleaseResources
  :mergeReleaseResources
  :processReleaseManifest
  :processReleaseResources/project/build/intermediates/res/release/values-v23/values.xml:6: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

  /project/build/intermediates/res/release/values-v23/values.xml:35: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

   FAILED

  FAILURE: Build failed with an exception.

  * What went wrong:
  Execution failed for task ':processReleaseResources'.
  > com.android.ide.common.internal.LoggedErrorException: Failed to run command:
        /android-sdk/build-tools/23.0.1/aapt package -f --no-crunch -I /android-sdk/platforms/android-22/android.jar -M /project/build/intermediates/manifests/full/release/AndroidManifest.xml -S /project/build/intermediates/res/release -A /project/build/intermediates/assets/release -m -J /project/build/generated/source/r/release -F /project/build/intermediates/res/resources-release.ap_ --custom-package com.crondale.tippnett -0 apk --output-text-symbols /project/build/intermediates/symbols/release
    Error Code:
        1
    Output:
        /project/build/intermediates/res/release/values-v23/values.xml:6: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

        /project/build/intermediates/res/release/values-v23/values.xml:35: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.



  * 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: 8.513 secs

  /project/cordova/node_modules/q/q.js:126
                      throw e;
                      ^
  Error code 1 for command: /project/gradlew with args: cdvBuildRelease,-b,/project/build.gradle,-Dorg.gradle.daemon=true,-PcdvBuildMultipleApks=false

【问题讨论】:

  • 您是否在 HTML 中包含了 Cordova.js 文件?同样在您的 config.xml 中,此插件应添加为 gap:plugin 或只是 plugin??您可能需要检查一下,因为我在 Cordova 有实际经验,而不是 phonegap
  • 是的,我包含了 Cordova.JS,它与这个插件有关,因为如果我删除它,它就可以工作。我已将其更改为 gap: 但仍然无法正常工作。 @甘地
  • @Chaudhray 你有没有在你的 HTML 中添加 deviceready 事件监听器?
  • 是的,我有,该插件适用于 ios 构建,但它需要适用于 android 的 gradle。所以我放了gradle,但它仍然无法在android上运行。
  • 很高兴您的问题得到解决。干杯

标签: cordova npm phonegap-plugins cordova-plugins


【解决方案1】:

正如官方诊断插件页面所述,如果您使用的是 Android API 版本 22 或更低版本(在您的情况下是这样),您应该使用插件的旧分支(cordova.plugins.diagnostic.api-22 ) 而不是主分支。

插件页面摘录如下:

对于希望针对 API 22 或更低版本进行构建的用户,插件库的一个分支包含除 Android 6 运行时权限之外的所有功能。这消除了对 API 23 的依赖,并允许您针对旧 API 版本(22 及以下)进行构建。

旧版分​​支以 cordova.plugins.diagnostic.api-22 的形式发布到 npm,因此您在添加时需要使用此插件 ID:

cordova plugin add cordova.plugins.diagnostic.api-22

这解决了 Android API 22 及更低版本中的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多