2014-05-20 1 views
2

첫 번째 : 나는 안드로이드 애플 리케이션을 빌드하는 데 Cordova 3.4를 사용했지만 알림 푸시 푸시를 설치했을 때 오류 빌드가 발생했습니다. 사용하여 프로젝트를 빌드 할 때 cordova 3.4 및 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 -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가 을 실패 코르도바 플러그인 https://github.com/Pushwoosh/pushwoosh-phonegap-3.0-plugin.git 2 PushWoosh 코드를 추가 :

1

나는 PushWoosh 설치 /Users/newaccount/opt/android-sdk/tools/ant/build.xml:892 :이 줄을 실행하는 동안 다음 오류가 발생했습니다 : /Users/newaccoun t/opt/android-sdk/tools/ant/build.xml : 894 :이 줄을 실행하는 동안 다음 오류가 발생했습니다 : /Users/newaccount/opt/android-sdk/tools/ant/build.xml:906 : The 다음과 같은 오류가 발생 라인이 실행 중 : 코도 PHP 또는 방법을 사용 : /Users/newaccount/opt/android-sdk/tools/ant/build.xml:284 : NULL 반환 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) 

번째 질문 이 앱을 설치하지 않은 특정 기기에 알림을 푸시 할 수 있습니까?

고맙습니다.

필요하지 않은 모든
+0

'cordova build android -d'를 실행할 수 있습니까? '-d'는 빌드가 실패한 곳의 더 구체적인 정보를 제공합니다. yhou가 그렇게한다면, 질문에있는 디버그를 교체하면 문제를 더 잘 해결하는 데 도움이됩니다. –

+0

디버그 오류 – raycoding

+1

을 교체했습니다. 가장 먼저 보는 것은 두 가지 관련 플러그인을 푸시 한 다음 주 오류가 두 번 포함될 라이브러리가 있다는 것입니다. 어쩌면 두 개의 플러그인이 동일한 라이브러리를 사용하고 있으며 이것이 문제의 원인 일 수 있는지 궁금합니다. 당신은'com.phonegap.plugins.PushPlugin'을 제거하고 그것이 도움이되는지 볼 수 있습니까? 또는 두 플러그인이 모두 필요합니까? –

답변

2

첫째 : 를 com.phonegap.plugins.PushPlugin 예, 또한 위에서 언급 한 바와 같이 오류에 대한 이유입니다.

사용자가 수신되지 않는 경우 알림은 다음과 같은 간단한 검사 따르 확인

  1. 을 반드시 구글 프로젝트 ID와 Pushwoosh의 응용 프로그램 ID를 잘
  2. 확실 가입자가 후 Pushwoosh 제어판의 증가 카운트 확인있어 푸시 알림에 등록하십시오.
  3. "푸시"에서 푸시 알림 상태를 확인하십시오. GCM에서 오류를 반환하면 통찰력을 얻을 수 있습니다.
  4. Pushwoosh App 구성에서 서버 키를 올바르게 가져 왔는지 확인하십시오. 때로는 (여전히 패턴에 대해 잘 모른다) 브라우저 키가 대신 작동합니다.
  5. Wi-Fi로 가끔 3G로 시도하십시오 (특히 기업 방화벽이있는 경우는 거의 발생하지 않음). 푸시 GCM 포트를 차단할 수 있습니다.

푸시 워시 팀.

1

Pushwoosh 이전에 다른 플러그인을 설치했기 때문에 동일한 오류가 발생하여 문제가 발생했습니다.

시도 :

cordova plugin list 

와 두 개의 알림 플러그인이 있는지 확인 :이 시나리오에서는

을, 당신이해야 :

1.장치

cordova platform add android (or ios...) 

4.Run : 당신이 /plugins 폴더

3.Create 다시 플랫폼에서 더 이상 필요하지 않은 플러그인 2.Remove

cordova platform rm android (or ios...) 

: 플랫폼을 제거합니다 :

cordova run android 

또는 구축 :

cordova build android 
관련 문제