将 Gradle 更新到 7.0.2 后,元素类型“manifest”后面必须跟属性规范、“>”或“/>”错误

After updating Gradle to 7.0.2, Element type “manifest” must be followed by either attribute specifications, “>” or “/>” error

提问人:xvlaze 提问时间:7/29/2021 最后编辑:xvlaze 更新时间:6/16/2022 访问量:2723

问:

所以今天我把Android Studio更新为:

Android Studio Arctic Fox | 2020.3.1
Build #AI-203.7717.56.2031.7583922, built on July 26, 2021

我收到“Android Gradle 插件可以升级”通知。

到目前为止,我一直在使用:

Android Gradle Plugin: 4.2.2
Gradle: 6.9
Java: 8

但是,升级后,我遇到了问题的错误。

我的清单文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hsd.contest.spain.clover.huawei">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">
        <receiver
            android:name=".AlarmReceiver"
            android:enabled="true"
            android:exported="false" />

        <activity
            android:name=".ConsumeActivity"
            android:excludeFromRecents="true"
            android:launchMode="singleTask"
            android:taskAffinity="" />
        <activity android:name=".MapActivity" />
        <activity
            android:name=".SetTimeActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait" />
        <activity
            android:name=".ActivityAddFreq"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait" />
        <activity
            android:name=".ConfigActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait" />
        <activity
            android:name=".SplashActivity"
            android:configChanges="orientation|keyboardHidden"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait" />

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>
</manifest>

你对为什么会发生这种情况有任何想法吗? 有趣的事实:这个错误只发生在这个项目中。

编辑我的华为 API 依赖项如下: 模块 build.gradle

implementation 'com.huawei.agconnect:agconnect-core:1.5.0.300'
implementation 'com.huawei.hms:awareness:1.0.7.303'
implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.5.300'
implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.5.300'
implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.5.300'
implementation 'com.huawei.hms:location:5.0.4.300'
implementation 'com.huawei.hms:maps:4.0.0.301'
implementation 'com.huawei.hms:site:5.0.5.301'
implementation 'com.huawei.hms:hianalytics:5.0.3.300'
implementation 'com.huawei.hms:ads-lite:13.4.41.304'

项目 build.gradle

classpath 'com.huawei.agconnect:agcp:1.4.2.300'
android gradle android-gradle-plugin android-manifest 清单

评论


答:

4赞 ΓDΛ 7/29/2021 #1

遇到了同样的问题。更新华为服务。请多多保重。 请记住将依赖项保留在最新版本上。 此问题发生在 Merged-Manifest 上。

implementation 'com.huawei.agconnect:agconnect-core:1.4.0.300'

请使用。-> 1.5.0.300

评论

0赞 xvlaze 7/29/2021
感谢您的快速回复。我连接到AppGalleryConnect并重新下载agconnect-services.json,但没有任何快乐。另外,Gradle 并没有告诉我我的任何华为依赖项都已经过时了。出于信息目的,我附上了安装 AGConnect Core 的行:implementation 'com.huawei.agconnect:agconnect-core:1.4.0.300'
0赞 xvlaze 7/30/2021
谢谢!但不幸的是,它仍然不起作用。
0赞 PedroAGSantos 7/30/2021
这也无济于事,我们确实有同样的问题。有什么解决办法吗?
1赞 ΓDΛ 7/30/2021
在文本编辑器中编辑和重新定义所有模块中的清单标签。
0赞 xvlaze 7/30/2021
你是说用手打字?
20赞 PedroAGSantos 7/30/2021 #2

我通过使用试错版本找到的真正解决方案是

implementation 'com.huawei.agconnect:agcp:1.5.2.300'

评论

0赞 xvlaze 7/30/2021
通过将您的行添加到模块的 build.gradle 并在项目的 build.gradle 中更改版本来工作。但是,我仍然感到困惑的是,Android Studio 并没有告诉我这个库已经过时了,并将一切都归咎于虚假的语法错误。有没有办法知道最新的华为AGCP版本?
0赞 PedroAGSantos 7/30/2021
@xvlaze我只是使用直觉,我没有找到版本列表的常见之处,所以我想也许他们在补丁通道中修复了它。但也许有一个我们不知道的地方。
0赞 YMonnier 8/2/2021
更新到最新版本后,错误不再出现!感谢您的解决方案!最好com.huawei.agconnect:agcp
1赞 Ton 12/29/2021
我想你可以检查这个版本列表:developer.huawei.com/consumer/en/doc/development/...
0赞 Usama Nasir 3/4/2022
对我来说,这是在gradle中添加的,但需要升级到最新版本才能工作
1赞 Ton 12/29/2021 #3

该错误是由于华为库过时造成的。 我按照此处的说明更新到最新版本:https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-apm-android-releasenotes-0000001052887266

请务必遵循以下注意事项:

注意 从 1.5.2.302 版本开始,APMS 插件功能已 集成到AppGallery Connect插件中。更新 SDK 版本到 1.5.2.302 或更高版本,您需要完成某些 确保与原始插件兼容的配置 功能。详情请参考 版本 1.5.2.302。

我也必须改变

implementation 'com.huawei.agconnect:agconnect-core:1.5.2.307'

implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'

由于某种原因(我不知道),找不到版本 1.5.2.307。

评论

1赞 WebViewer 12/11/2022
这应该是公认的答案,因为它解释了“为什么”。
3赞 Рафаэль солихов 6/16/2022 #4

同样的问题,更新到最新的可用版本,它起作用了

classpath 'com.huawei.agconnect:agcp:1.6.0.300'