2016-07-22 12 views
2

Ich habe mehrere C++ - Projekte, die ich derzeit mit Android.mk-Dateien und ndk-build erstellen. Da dies nicht wirklich toll zum Debuggen ist, möchte ich diese C++ - Projekte als Module in mein Android-Studio-Projekt aufnehmen. Dieses Android-Studio-Projekt ist derzeit eine Android-Java-Bibliothek, die die .so von der ndk-build verwendet.Ist es in Android Studio möglich, ein natives Modul mit .so als Ausgabe zu erstellen

Ich habe Debugging zu arbeiten, indem ich ein neues Android-Bibliotheksmodul erstellt und den C++ - Code, Header und Bibliothekspfade zu importieren. Dieses Modul sieht wie folgt aus:

apply plugin: 'com.android.model.library' 

model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = '23.0.2' 

     defaultConfig { 
      minSdkVersion.apiLevel = 4 
      targetSdkVersion.apiLevel = 23 
     } 
    } 
    android.ndk { 
     moduleName = 'module_name' 
     toolchain = 'gcc' 
     stl "gnustl_static" 
     ldFlags.addAll(["-L/LIB_PATH"]) 
     ldLibs.addAll(["android", "log", "whatever_lib"]) 


     cppFlags.addAll(['-std=c++11', 
         "-I" + "/SEARCH_PATHS"]) 

    } 
    android.productFlavors { 
     create("arm7") { 
      ndk.abiFilters.add("armeabi-v7a") 
     } 
    } 
    android.sources { 
     main { 
      java.source.srcDirs += [] 
      res.source.srcDirs += [] 
      assets.source.srcDirs += [] 
      jniLibs.source.srcDirs += [] 
      jni.source{ 
       srcDirs += [ 
         NATIVE_PROJECT_PATH + "include/", 
         NATIVE_PROJECT_PATH + "src/", 

       ] 
      } 
     } 
    } 
} 

Dies funktioniert gut, aber ich habe das .so in Modul/build/output/aar/libname_release.aar/lib/abi/lib.so das ist kein guter Ort, da ich würde das .so direkt brauchen ohne das aar zu entpacken.

Gibt es eine Möglichkeit, dieses Modul nur die .so auf einem bestimmten Pfad zu erstellen und ein anderes Modul erstellen und verwenden zu lassen?

Antwort

Verwandte Themen