错误:(72)未知元素< receiver>成立 [英] Error:(72) unknown element <receiver> found

查看:106
本文介绍了错误:(72)未知元素< receiver>成立的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Dji-SDK.最近,我将SDK从版本4.2迁移到了4.3.2.在libs文件夹中更改dji-sdk.aar之后,由于清单中的合并问题,我无法构建.构建中的合并清单将按以下方式创建.

...
<uses-permission android:name="android.permission.USE_CREDENTIALS" />

    <receiver
        android:name="dji.logic.receiver.DJIPilotStartupReceiver"
        android:exported="true"
        android:permission="dji.permission.sdk.wifi" >
        <intent-filter>
            <action android:name="dji.pilot.STARTUP" />
            <action android:name="dji.go3.STARTUP" />
            <action android:name="dji.go4.STARTUP" />
        </intent-filter>
    </receiver>

    <application
        android:name="com.sample.app.LinkApplication"
...

我知道receiver标记应位于application标记之下.但是在合并清单中,标记在uses-permission标记下并显示错误.是Sdk错误还是在我这边错了? 错误是

Error:(71) unknown element <receiver> found

这是build.gradle.

    buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'me.tatarka.retrolambda'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.sample.app"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 7
        versionName "4.0.2"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++11"
            }
        }
        vectorDrawables {
            useSupportLibrary = true
        }
        packagingOptions {
            exclude 'META-INF/rxjava.properties'
        }
        multiDexEnabled true
        retrolambda {
            javaVersion JavaVersion.VERSION_1_6
            incremental true
        }
        buildConfigField "boolean", "DRONE_DEBUG", property('DRONE_DEBUG')
        buildConfigField "String", "BASE_URL", property('BASE_URL')
        buildConfigField "String", "LINK_DRONE_URL", property('LINK_DRONE_URL')
        buildConfigField "String", "LINK_SENSOR_URL", property('LINK_SENSOR_URL')
        resValue "string", "api_key_dji_sdk", "################"
        resValue "string", "app_name", "Link"
        dimension "default"
        applicationId = "com.sample.app"
    }
    buildTypes {
        debug {

        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    flavorDimensions "default"
    lintOptions {
        checkReleaseBuilds false
    }
    dataBinding {
        enabled = true
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
    maven { url 'https://maven.fabric.io/public' }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
    testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
    implementation 'com.android.support:appcompat-v7:25.4.0'
    implementation 'com.android.support:design:25.4.0'
    implementation 'com.android.support:cardview-v7:25.4.0'
    implementation 'com.android.support:multidex:1.0.2'
    implementation 'com.google.android.gms:play-services-location:11.0.2'
    implementation 'com.google.android.gms:play-services-maps:11.0.2'
    implementation 'com.google.dagger:dagger:2.10'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.10'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.1'
    implementation('com.squareup.retrofit2:retrofit:2.3.0')
    implementation('com.squareup.retrofit2:converter-gson:2.3.0') {
        exclude group: 'com.google.code.gson', module: 'gson'
    }
    implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
    implementation 'com.jakewharton.timber:timber:4.5.1'
    implementation 'me.grantland:autofittextview:0.2.1'
    implementation 'com.squareup:otto:1.3.8'
    implementation('org.jscience:jscience:4.3.1', {
        exclude group: 'org.javolution', module: 'javolution'
    })
    //implementation 'com.dji:dji-sdk:4.3.2' (i have tried this too after removeing the dji-sdk.aar)
    implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
}

我正在使用

  • Android Studio 3.0 Beta 4
  • Dji-sdk 4.3.2

解决方案

尝试通过将android.enableAapt2=false添加到gradle.properties文件中来禁用AAPT2.

启用AAPT2时,构建可能会失败.此外,AAPT2是 目前与Robelectric不兼容.如果您的构建由于以下原因而失败 AAPT2资源处理问题,或者您想使用Roboelectric, 您可以通过在您的计算机上设置android.enableAapt2=false来禁用AAPT2 gradle.properties文件并通过运行重新启动Gradle守护程序 ./gradlew --stop从命令行.

参考文献:此处

我使用的是Android Studio 3.0 beta 5,在其中我禁用了AAPT2并解决了我的错误.

更新:

Jay 提到了另一种解决方案,可以将Android Studio更新为3.1.1.自从更新为他解决了问题.我还没有交叉检查.

更新:2020年3月1日 正如 Tarit 所述,android.enableAapt2=false已过时,不应使用.

I am using Dji-SDK. Recently i migrated the SDK from version 4.2 to 4.3.2. After changing the dji-sdk.aar in the libs folder i am not able to build because of the merge issues in the manifest. The merged manifest in build is getting created as follows.

...
<uses-permission android:name="android.permission.USE_CREDENTIALS" />

    <receiver
        android:name="dji.logic.receiver.DJIPilotStartupReceiver"
        android:exported="true"
        android:permission="dji.permission.sdk.wifi" >
        <intent-filter>
            <action android:name="dji.pilot.STARTUP" />
            <action android:name="dji.go3.STARTUP" />
            <action android:name="dji.go4.STARTUP" />
        </intent-filter>
    </receiver>

    <application
        android:name="com.sample.app.LinkApplication"
...

I know that the receiver tag should come under application tag. But in the merged manifest the tag is under the uses-permission tag and showing an error. Is it an Sdk error or is it wrong on my side ? Error is

Error:(71) unknown element <receiver> found

Here is the build.gradle.

    buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'me.tatarka.retrolambda'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.sample.app"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 7
        versionName "4.0.2"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++11"
            }
        }
        vectorDrawables {
            useSupportLibrary = true
        }
        packagingOptions {
            exclude 'META-INF/rxjava.properties'
        }
        multiDexEnabled true
        retrolambda {
            javaVersion JavaVersion.VERSION_1_6
            incremental true
        }
        buildConfigField "boolean", "DRONE_DEBUG", property('DRONE_DEBUG')
        buildConfigField "String", "BASE_URL", property('BASE_URL')
        buildConfigField "String", "LINK_DRONE_URL", property('LINK_DRONE_URL')
        buildConfigField "String", "LINK_SENSOR_URL", property('LINK_SENSOR_URL')
        resValue "string", "api_key_dji_sdk", "################"
        resValue "string", "app_name", "Link"
        dimension "default"
        applicationId = "com.sample.app"
    }
    buildTypes {
        debug {

        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    flavorDimensions "default"
    lintOptions {
        checkReleaseBuilds false
    }
    dataBinding {
        enabled = true
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
    maven { url 'https://maven.fabric.io/public' }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
    testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
    implementation 'com.android.support:appcompat-v7:25.4.0'
    implementation 'com.android.support:design:25.4.0'
    implementation 'com.android.support:cardview-v7:25.4.0'
    implementation 'com.android.support:multidex:1.0.2'
    implementation 'com.google.android.gms:play-services-location:11.0.2'
    implementation 'com.google.android.gms:play-services-maps:11.0.2'
    implementation 'com.google.dagger:dagger:2.10'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.10'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.1'
    implementation('com.squareup.retrofit2:retrofit:2.3.0')
    implementation('com.squareup.retrofit2:converter-gson:2.3.0') {
        exclude group: 'com.google.code.gson', module: 'gson'
    }
    implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
    implementation 'com.jakewharton.timber:timber:4.5.1'
    implementation 'me.grantland:autofittextview:0.2.1'
    implementation 'com.squareup:otto:1.3.8'
    implementation('org.jscience:jscience:4.3.1', {
        exclude group: 'org.javolution', module: 'javolution'
    })
    //implementation 'com.dji:dji-sdk:4.3.2' (i have tried this too after removeing the dji-sdk.aar)
    implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
}

I am using

  • Android Studio 3.0 Beta 4
  • Dji-sdk 4.3.2

解决方案

Try disabling the AAPT2 by adding android.enableAapt2=false to your gradle.properties file.

Builds may fail while AAPT2 is enabled. Additionally, AAPT2 is currently not compatible with Robelectric. If your build fails due to an AAPT2 resource processing issue or you want to use Roboelectric, you can disable AAPT2 by setting android.enableAapt2=false in your gradle.properties file and restarting the Gradle daemon by running ./gradlew --stop from the command line.

Reference : here

I was using Android studio 3.0 beta 5 In which I disabled the AAPT2 and it resolved my error.

UPDATE :

As Jay has mentioned another solution could be update Android Studio to 3.1.1. Since updating has solved issue for him. I haven't cross checked though.

UPDATE : 01 March 2020 As Tarit has mentioned, android.enableAapt2=false is deprecated and shouldn't be used.

这篇关于错误:(72)未知元素&lt; receiver&gt;成立的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆