错误:(72)未知元素< receiver>成立 [英] Error:(72) unknown element <receiver> found
问题描述
我正在使用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
来禁用AAPT2gradle.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 yourgradle.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)未知元素< receiver>成立的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!