web-dev-qa-db-fra.com

Erreur: (72) élément inconnu <récepteur> trouvé

J'utilise Dji-SDK. Récemment, j'ai migré le SDK de la version 4.2 à 4.3.2. Après avoir changé le dji-sdk.aar dans le dossier libs, je ne suis pas en mesure de construire en raison des problèmes de fusion dans le manifeste. Le manifeste fusionné dans la génération est créé comme suit.

...
<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"
...

Je sais que la balise receiver doit se trouver sous la balise application. Mais dans le manifeste fusionné, la balise est sous le uses-permission tag et affichant une erreur. Est-ce une erreur Sdk ou est-ce mal de mon côté? L'erreur est

Error:(71) unknown element <receiver> found

Voici le 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;
    }
}

J'utilise

  • Android Studio 3.0 Bêta 4
  • Dji-sdk 4.3.2
12
Jknair

Essayez de désactiver le AAPT2 en ajoutant Android.enableAapt2=false à ton gradle.properties fichier.

Les versions peuvent échouer lorsque AAPT2 est activé. De plus, AAPT2 n'est actuellement pas compatible avec Robelectric. Si votre génération échoue en raison d'un problème de traitement des ressources AAPT2 ou si vous souhaitez utiliser Roboelectric, vous pouvez désactiver AAPT2 en définissant Android.enableAapt2=false dans votre gradle.properties fichier et redémarrage du démon Gradle en exécutant ./gradlew --stop depuis la ligne de commande.

Référence: ici

J'utilisais Android studio 3.0 beta 5 Dans lequel j'ai désactivé le AAPT2 et cela a résolu mon erreur.

MISE À JOUR:

Comme Jay l'a mentionné, une autre solution pourrait être mise à jour Android Studio vers 3.1.1. Depuis la mise à jour a résolu le problème pour lui. Je n'ai cependant pas recoupé.

28
Nilesh Deokar