2017-09-18 4 views
1

im très confondu avec NDK et avec OpenSL Im essayant d'ajouter OpenSL à mon projet. Et avoir des problèmes. Lorsque je crée ndk projet- je n'ai pas de fichier Android.mk mais j'ai CMakeListAjouter OpenSL à android

dans les tutoriels partout parle de android.mk où besoin d'écrire une chaîne pour l'outil OpenSL à projet.

ici mon build.graddle (module) fichier

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.1" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    externalNativeBuild { 
     cmake { 
      path 'CMakeLists.txt' 
     } 
    } 

    sourceSets { 
     main { 
      jniLibs.srcDirs 'imported-lib/src/', 'more-imported-libs/src/' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:26.+' 
} 

CMakeList.txt

cmake_minimum_required(VERSION 3.4.1) 
add_library(# Specifies the name of the library. 
      native-lib 

      # Sets the library as a shared library. 
      SHARED 

      # Provides a relative path to your source file(s). 
      src/main/cpp/native-lib.cpp) 

      # Specifies a path to native header files. 
      include_directories(src/main/cpp/include/) 

      # Include libraries needed for native-audio-jni lib 
      target_link_libraries(native-audio-jni 
            android 
            log 
            OpenSLES) 

et un test simple pour NDK

#include <jni.h> 
#include <string> 

extern "C" 
JNIEXPORT jstring JNICALL 
Java_ndk_test_stringFromJNI(
     JNIEnv *env, 
     jobject /* this */) { 
    std::string hello = "Hello from C++"; 
    return env->NewStringUTF(hello.c_str()); 
} 

fonction d'appel stringFromJNI est ok je vois cette ligne dans les journaux. Mais la question principale de ce que je fais mal. Comment mettre en œuvre OpenSL sans Android.mk

Dans la section google.devandroid Racontez- ajouter LOCAL_LDLIBS += -lOpenSLES à Android.mk dans chaque tutoriel tout dit à propos android.mk. Mais je n'ai pas ce fichier. Quelqu'un peut-il m'aider? dans l'exemple de goo link to example

+0

Cela me ressemble. Quelle erreur voyez-vous? –

+0

j'ai trouvé l'erreur que j'ai le fichier cpp native-lib.cpp, mais déclaré natif-audio-jni – Peter

Répondre