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
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 votregradle.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é.