jpush / jpush-phonegap-plugin

JPush's officially supported PhoneGap/Cordova plugin (Android & iOS). 极光推送官方支持的 PhoneGap/Cordova 插件(Android & iOS)。
https://docs.jiguang.cn
MIT License
925 stars 350 forks source link

编译失败,插件生成了错误的配置文件 #436

Closed jun4rui closed 3 years ago

jun4rui commented 3 years ago

WARNING: 如果不按照这个表格,我们将无法帮助你,并将忽略你的问题。

你的运行环境

期望效果

成功编译,cordova build android能跑完

实际效果

报错 根路径下的plugin.xml文件第110行的

<!--华为角标-->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE "/> 

在CHANGE_BADGE和引号之间有一个空格,导致这个权限配置有问题,编译无法继续,到这里就报错,可是直接改了插件下这个文件也没用,还是反复生成带空格的文件(这个"\platforms\android\build\intermediates\manifests\full\debug\AndroidManifest.xml")

重现步骤

  1. 安装Cordova
  2. 安装Android平台支持
  3. 安装jPush插件
  4. 编译代码: cordova build android
  5. 失败

附上错误信息

D:\SYNC\DATA\src\xxxxx\platforms\android\build\intermediates\manifests\full\debug\AndroidManifest.xml:43: AAPT: Tag <uses-permission> attribute name has invalid character ' '.

 FAILED
D:\SYNC\DATA\src\xxxxx\platforms\android\build\intermediates\manifests\full\debug\AndroidManifest.xml:43: Tag <uses-permission> attribute name has invalid character ' '.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

* 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: 3.373 secs
cmd: Command failed with exit code 1 Error output:
D:\SYNC\DATA\src\xxxxx\platforms\android\build\intermediates\manifests\full\debug\AndroidManifest.xml:43: AAPT: Tag <uses-permission> attribute name has invalid character ' '.

D:\SYNC\DATA\src\xxxxx\platforms\android\build\intermediates\manifests\full\debug\AndroidManifest.xml:43: Tag <uses-permission> attribute name has invalid character ' '.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

背景

你尝试做过些什么?

  1. 直接修改plugin.xml文件的110行,去掉权限配置文件中多余的空格,失败,build android时还是会产生带空格的AndroidManifest.xml文件,然后又编译失败
  2. 直接删除plugin.xml文件的110行整行,编译,和上面

Debug logs

包括 Android 或 iOS 的日志:

Ybbbb commented 3 years ago

我直接在github上下载了项目文件,然后修改了文件内的plugin.xml文件,把那个华为角标适配的最后一行空格去掉,然后通过本地路径引入到cordova项目中,重新生成之后就好了,不会生成带空格的那行, 但是我重新build之后,报了其他的错,说是这个文件内有字符串错误。 image 具体的报错如下: image

我已经无力吐槽这个插件了,只能选择降版本使用,但是偏偏产品还硬要加安卓的角标数字显示,希望官方会维护下这个版本

Ybbbb commented 3 years ago

我昨天新建了一个项目,更新了cordova android版本,用了8.1.0版本后,可以正常打包了,不会报错,是cordova android的版本问题导致的,破案了兄弟! image

jun4rui commented 3 years ago

嗯,我现在也是换版本用了