gpt4 book ai didi

php - 使用 cordova 3.4 和 pushwoosh 构建 android 应用程序时出错

转载 作者:搜寻专家 更新时间:2023-11-01 08:50:39 26 4
gpt4 key购买 nike

首先:我使用 Cordova 3.4 构建 Android 应用程序,但是当我安装 PushWoosh 来推送通知时,我面临构建错误。

1- 我安装了 PushWoosh:

cordova plugin add https://github.com/Pushwoosh/pushwoosh-phonegap-3.0-plugin.git

2- PushWoosh 代码:

    function init() {
document.addEventListener("deviceready", initPushwoosh, true);

//rest of the code
}

function initPushwoosh()
{
var pushNotification = window.plugins.pushNotification;

//set push notifications handler
document.addEventListener('push-notification', function(event) {
var title = event.notification.title;
var userData = event.notification.userdata;

if (typeof (userData) !== "undefined") {
console.warn('user data: ' + JSON.stringify(userData));
}

navigator.notification.alert(title);
});

//initialize Pushwoosh with projectid: "GOOGLE_PROJECT_ID", appid : "PUSHWOOSH_APP_ID". This will trigger all pending push notifications on start.
pushNotification.onDeviceReady({projectid: "Google_Project_Number", appid: "ID_Of-PushWoosh"});

//register for pushes
pushNotification.registerDevice(
function(status) {
var pushToken = status;
console.warn('push token: ' + pushToken);
},
function(status) {
console.warn(JSON.stringify(['failed to register ', status]));
}
);
}

</script>

3- 构建项目时使用:cordova build android

cordova build android -d
cordova library for "android" already exists. No need to download. Continuing.
Generating config.xml from defaults for platform "android"
Calling plugman.prepare for platform "android"
Preparing android project
Processing configuration changes for plugins.
Iterating over installed plugins: [ 'org.apache.cordova.device',
'org.apache.cordova.console',
'org.apache.cordova.camera',
'org.apache.cordova.geolocation',
'org.apache.cordova.vibration',
'org.apache.cordova.splashscreen',
'org.apache.cordova.media-capture',
'org.apache.cordova.file-transfer',
'org.apache.cordova.battery-status',
'org.apache.cordova.contacts',
'org.apache.cordova.media',
'org.apache.cordova.network-information',
'org.apache.cordova.globalization',
'org.apache.cordova.device-motion',
'org.apache.cordova.dialogs',
'org.apache.cordova.device-orientation',
'de.appplant.cordova.plugin.background-mode',
'com.phonegap.plugins.PushPlugin',
'com.pushwoosh.plugins.pushwoosh',
'org.apache.cordova.file' ]
Writing out cordova_plugins.js...
Wrote out Android application name to "Insurance"
Wrote out Android package name to "com.coolappz.Insurance"
Running command: /Users/newaccount/projects/Insurance/platforms/android/cordova/build
Buildfile: /Users/newaccount/projects/Insurance/platforms/android/build.xml

-set-mode-check:

-set-debug-files:

-check-env:
[checkenv] Android SDK Tools Revision 22.3.0
[checkenv] Installed at /Users/newaccount/opt/android-sdk

-setup:
[echo] Project Name: Insurance
[gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.1
[echo] Resolving Build Target for Insurance...
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for Insurance...
[dependency] Library dependencies:
[dependency]
[dependency] ------------------
[dependency] Ordered libraries:
[dependency]
[dependency] ------------------
[echo] ----------
[echo] Building Libraries with 'debug'...

nodeps:

-set-mode-check:

-set-debug-files:

-check-env:
[checkenv] Android SDK Tools Revision 22.3.0
[checkenv] Installed at /Users/newaccount/opt/android-sdk

-setup:
[echo] Project Name: CordovaLib
[gettype] Project Type: Android Library

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.1
[echo] Resolving Build Target for CordovaLib...
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for CordovaLib...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------

-code-gen:
[mergemanifest] No changes in the AndroidManifest files.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] No changed resources. R.java and Manifest.java untouched.
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] No need to generate new BuildConfig.

-pre-compile:

-compile:
[echo] Creating library output jar file...

-post-compile:

-obfuscate:

-dex:
[echo] Library project: do not convert bytecode...

-crunch:
[crunch] Crunching PNG Files in source dir: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/res
[crunch] To destination dir: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/res
[crunch] Crunched 0 PNG files to update cache

-package-resources:
[echo] Library project: do not package resources...

-package:
[echo] Library project: do not package apk...

-post-package:

-do-debug:
[echo] Library project: do not create apk...
[propertyfile] Updating property file: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/build.prop

-post-build:

debug:

-code-gen:
[mergemanifest] Found modified input file
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] Found modified input file
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] No need to generate new BuildConfig.

-pre-compile:
[echo] Set jars path to: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant- build/classes.jar:/Users/newaccount/projects/Insurance/platforms/android/libs/gcm.jar:/Users/n ewaccount/projects/Insurance/platforms/android/libs/android-support- v13.jar:/Users/newaccount/projects/Insurance/platforms/android/libs/Pushwoosh.jar

-compile:
[javac] Compiling 3 source files to /Users/newaccount/projects/Insurance/platforms/android/ant-build/classes

-post-compile:

-obfuscate:

-dex:
[dex] input: /Users/newaccount/projects/Insurance/platforms/android/ant-build/classes
[dex] input: /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant- build/classes.jar
[dex] input: /Users/newaccount/projects/Insurance/platforms/android/libs/gcm.jar
[dex] input: /Users/newaccount/projects/Insurance/platforms/android/libs/android-support-v13.jar
[dex] input: /Users/newaccount/projects/Insurance/platforms/android/libs/Pushwoosh.jar
[dex] Using Pre-Dexed classes-e368cee6db5bb9478a5a486c3a854124.jar <- /Users/newaccount/projects/Insurance/platforms/android/CordovaLib/ant-build/classes.jar
[dex] Using Pre-Dexed gcm-e0369832eeefafff8956756cd54fc4fc.jar <- /Users/newaccount/projects/Insurance/platforms/android/libs/gcm.jar
[dex] Using Pre-Dexed android-support-v13-38130f7a5981a081f33db833ecedaa4f.jar <- /Users/newaccount/projects/Insurance/platforms/android/libs/android-support-v13.jar
[dex] Using Pre-Dexed Pushwoosh-1f9e6f24e222422f2432a7f4365495c2.jar <- /Users/newaccount/projects/Insurance/platforms/android/libs/Pushwoosh.jar
[dex] Found modified input file
[dex] Converting compiled files and external libraries into /Users/newaccount/projects/Insurance/platforms/android/ant-build/classes.dex...
[dx] Merged dex A (124 defs/201.5KiB) with dex B (205 defs/312.8KiB). Result is 329 defs/628.5KiB. Took 0.5s
[dx] Merged dex A (329 defs/628.5KiB) with dex B (4 defs/18.7KiB). Result is 333 defs/826.4KiB. Took 0.2s
[dx] Merged dex A (333 defs/826.4KiB) with dex B (324 defs/359.0KiB). Result is 657 defs/1582.4KiB. Took 0.2s
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] com.android.dex.DexException: Multiple dex files define Lcom/google/android/gcm/GCMBaseIntentService;
[dx] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
[dx] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
[dx] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
[dx] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
[dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
[dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
[dx] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:230)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:199)
[dx] at com.android.dx.command.Main.main(Main.java:103)
[dx]

BUILD FAILED
/Users/newaccount/opt/android-sdk/tools/ant/build.xml:892: The following error occurred while executing this line:
/Users/newaccount/opt/android-sdk/tools/ant/build.xml:894: The following error occurred while executing this line:
/Users/newaccount/opt/android-sdk/tools/ant/build.xml:906: The following error occurred while executing this line:
/Users/newaccount/opt/android-sdk/tools/ant/build.xml:284: null returned: 2

Total time: 17 seconds
Error code 1 for command: ant with args: debug,- f,/Users/newaccount/projects/Insurance/platforms/android/build.xml,-Dout.dir=ant-build,- Dgen.absolute.dir=ant-gen
Command finished with error code 2: /Users/newaccount/projects/Insurance/platforms/android/cordova/build
Error: /Users/newaccount/projects/Insurance/platforms/android/cordova/build: Command failed with exit code 2
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/src/superspawn.js:126:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Process.ChildProcess._handle.onexit (child_process.js:810:5)

第二个问题:使用 Cordova 或 PHP,如何将通知推送到安装了此应用程序但未广播的特定设备?

最佳答案

首先你不需要:com.phonegap.plugins.PushPlugin。是的,这也是上述错误的原因。

如果您没有收到通知,请执行以下简单检查:

  1. 确保您的 Google 项目 ID 和 Pushwoosh 应用 ID 正确
  2. 注册推送通知后,请确保 Pushwoosh 控制面板中的订阅者数量有所增加。
  3. 在“推送”中检查推送通知的状态。如果 GCM 返回错误,它可能会提供一些见解。
  4. 确保您在 Pushwoosh 应用程序配置中拥有正确的服务器 key 。有时(仍然不知道模式)浏览器键会起作用。
  5. 尝试使用 3G,因为有时 Wi-Fi(很少见,但会发生,尤其是如果您有任何企业防火墙)可能会阻止推送 GCM 端口。

免责声明:我是 Pushwoosh 团队的一员。

关于php - 使用 cordova 3.4 和 pushwoosh 构建 android 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com