【问题标题】:Error:(72) unknown element <receiver> found错误:(72) 找到未知元素 <receiver>
【发布时间】:2018-03-15 14:04:58
【问题描述】:

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

...
<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 android-manifest android-studio-3.0 dji-sdk


【解决方案1】:

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

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

参考:here

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

更新:

正如Jay 提到的另一个解决方案可能是将Android Studio 更新为3.1.1。由于更新已经为他解决了问题。不过我没有交叉检查。

更新日期:2020 年 3 月 1 日 正如Tarit 所提到的,android.enableAapt2=false 已被弃用,不应使用。

【讨论】:

  • android.enableAapt2=false 添加到gradle.properties 文件有效。
  • 已确认修复 Android Studio 3.0
  • 我不确定是否修复,因为我的项目如果不添加 android.enableAapt2=false in Studio 3.0 仍然无法工作
  • 我可以确认它现在也适用于 DJI SDK 4.4.1 和 Android Studio 3.1...
  • 如果它在以前的版本中得到纠正,那么就会出现回归。我在 Android Studio 3.1.2 上遇到问题
猜你喜欢
  • 2010-11-01
  • 2022-11-04
  • 2018-07-02
  • 1970-01-01
  • 2011-07-18
  • 2016-12-12
  • 2021-06-02
  • 1970-01-01
相关资源
最近更新 更多