web-dev-qa-db-ja.com

エラー:(72)不明な要素<レシーバー>が見つかりました

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
12
Jknair

AAPT2ファイルにAndroid.enableAapt2=falseを追加して、gradle.propertiesを無効にしてみてください。

AAPT2が有効になっていると、ビルドが失敗する場合があります。さらに、AAPT2は現在Robelectricと互換性がありません。 AAPT2リソース処理の問題が原因でビルドが失敗した場合、またはRoboelectricを使用したい場合は、Android.enableAapt2=falseファイルでgradle.propertiesを設定し、./gradlew --stopを実行してGradleデーモンを再起動することで、AAPT2を無効にできます。コマンドライン。

参考: ここ

Android studio 3.0 beta 5を使用していましたが、AAPT2を無効にしてエラーを解決しました。

UPDATE:

Jay が言及したように、別の解決策はupdate Android Studio to 3.1.1です。更新することで問題が解決したため、クロスチェックしていません。

28
Nilesh Deokar