0

Utilisation du plug-in Android Gradle Experimental version 0.9.1. J'ai besoin de différents chemins de recherche de bibliothèques statiques pour chaque ABI, y a-t-il un moyen d'y parvenir? Voici l'extrait build.gradle J'ai droit non, dans la ligne où ajouter ldFlags Je veux ajouter la clé -L du compilateur avec le nom contenant du chemin du spécifique ABI:Chemin de recherche de bibliothèque différent pour chaque ABI

model { 

    android { 
     compileSdkVersion = 25 
     buildToolsVersion = '25.0.2' 

     defaultConfig { 
      minSdkVersion.apiLevel = 9 
      targetSdkVersion.apiLevel = 9 
      versionCode = 1 
      versionName = '1.0' 
     } 
     ndk { 
      platformVersion = 21 
      moduleName = "stob" 
      toolchain = 'clang' 
      abiFilters.addAll(['armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64']) //this is default 
      ldLibs.addAll(['android', 'log']) 
      stl = 'c++_static' 
      cppFlags.add("-std=c++11") 
      cppFlags.add("-fexceptions") 
      cppFlags.add("-frtti") 
      cppFlags.add("-I" + projectDir.getAbsolutePath() + "/build/ndkLibs/include") 
      //!!! Here I want to search for libs in ABI-specific directory 
      ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/${getAbi()}") 
     } 

    } 
} 

Comment puis-je mettre en œuvre cette fonction getAbi()?

+0

Avez-vous essayé $ {targetPlatform.getName()}? – Alex

+0

@Alex vient de l'essayer: 'Erreur: Aucune propriété: targetPlatform pour la classe: com.android.build.gradle.managed.NdkConfig' – igagis

+0

Semble ne fonctionner que s'il est utilisé avec des librairies prédéfinies comme décrit ici: http: // tools .android.com/tech-docs/nouveau-build-system/gradle-experimental # TOC-NDK-Dépendances – Alex

Répondre

0

J'ai trouvé un pas très élégant, mais toujours une solution au problème:

model { 
    android { 
     compileSdkVersion = 25 
     buildToolsVersion = '25.0.2' 

     defaultConfig { 
      minSdkVersion.apiLevel = 9 
      targetSdkVersion.apiLevel = 9 
      versionCode = 1 
      versionName = '1.0' 
     } 
     ndk { 
      platformVersion = 21 
      moduleName = "blahblah" 
      toolchain = 'clang' 
      abiFilters.addAll(['armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64']) //this is default 
      ldLibs.addAll(['android', 'log']) 
      stl = 'c++_static' 
      cppFlags.add("-std=c++11") 
      cppFlags.add("-fexceptions") 
      cppFlags.add("-frtti") 
      cppFlags.add("-I" + projectDir.getAbsolutePath() + "/build/ndkLibs/include") 
     } 
     abis { 
      create("armeabi") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/armeabi") 
      } 
      create("armeabi-v7a") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/armeabi-v7a") 
      } 
      create("arm64-v8a") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/arm64-v8a") 
      } 
      create("x86") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/x86") 
      } 
      create("x86_64") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/x86_64") 
      } 
      create("mips") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/mips") 
      } 
      create("mips64") { 
       ldFlags.add("-L" + projectDir.getAbsolutePath() + "/build/ndkLibs/mips64") 
      } 
     } 
    } 
}