Android NDK, cannot call C method in Java -


i'm trying work android ndk libary called opensles. when try call in soundplayer class not find methods looking @ nativeaudio example @ github im doing correct or maybe skipped cannot find out.

i have following method in native-lib-jni.c file :

// create engine , output mix objects void  java_com_example_gebruiker_drumioremastered_soundplayer_createengine(jnienv*  env, jclass clazz)   {   slresult result;  // create engine result = slcreateengine(&engineobject, 0, null, 0, null, null); assert(sl_result_success == result); (void)result;  // realize engine result = (*engineobject)->realize(engineobject, sl_boolean_false); assert(sl_result_success == result); (void)result;  // engine interface, needed in order create other objects result = (*engineobject)->getinterface(engineobject, sl_iid_engine, &engineengine); assert(sl_result_success == result); (void)result;  // create output mix, environmental reverb specified non-required interface const slinterfaceid ids[1] = {sl_iid_environmentalreverb}; const slboolean req[1] = {sl_boolean_false}; result = (*engineengine)->createoutputmix(engineengine, &outputmixobject, 1, ids, req); assert(sl_result_success == result); (void)result;  // realize output mix result = (*outputmixobject)->realize(outputmixobject, sl_boolean_false); assert(sl_result_success == result); (void)result;  // environmental reverb interface // fail if environmental reverb effect not available, // either because feature not present, excessive cpu load, or // required modify_audio_settings permission not requested , granted result = (*outputmixobject)->getinterface(outputmixobject, sl_iid_environmentalreverb,                                           &outputmixenvironmentalreverb); if (sl_result_success == result) {     result = (*outputmixenvironmentalreverb)->setenvironmentalreverbproperties(             outputmixenvironmentalreverb, &reverbsettings);     (void)result; } // ignore unsuccessful result codes environmental reverb, optional example   } 

my class called soundplayer (i don't know if has implement activity work? don't think right? )

my cmakelists.txt:

# sets minimum version of cmake required build native library. # ensures set of cmake features available # build.   cmake_minimum_required(version 3.4.1)  set(cmake_c_flags "${cmake_c_flags} -std=c99 -wall")  add_library(  native-lib-jni            shared        c:/users/gebruiker/androidstudioprojects/drumioremastered/     app/src/main/cpp/native-lib-jni.c )        include_directories(c:/users/gebruiker/androidstudioprojects     /drumioremastered/app/src/main/cpp)                  target_link_libraries(native-lib-jni                   android                   log                   opensles) 

and androidmanifest:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.gebruiker.drumioremastered">  <application     android:allowbackup="true"     android:icon="@mipmap/ic_launcher"     android:label="@string/app_name"     android:roundicon="@mipmap/ic_launcher_round"     android:supportsrtl="true"     android:theme="@style/apptheme">     <activity android:name=".drumplayeractivity">         android:screenorientation="portrait"         <intent-filter>             <action android:name="android.intent.action.main" />              <category android:name="android.intent.category.launcher" />         </intent-filter>     </activity> </application>  </manifest>     here drumplayer :    package com.example.gebruiker.drumioremastered;  import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.widget.button;  import com.example.gebruiker.drumioremastered.eventbus.messageevent; import com.example.gebruiker.drumioremastered.utilities.playbutton;   import org.greenrobot.eventbus.eventbus;   import butterknife.bindview;  import butterknife.butterknife;  import butterknife.onclick;   public class drumplayeractivity extends appcompatactivity {  @bindview(r.id.playbutton1) playbutton mplaybutton;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     butterknife.bind(this);   }    @onclick(r.id.playbutton1) public void playclicked(){      mplaybutton.changebuttonstate();    eventbus.getdefault().  post(createstatemessage(mplaybutton.getbuttonstate()));  }   public messageevent createstatemessage(boolean buttonstate){     messageevent message = new messageevent();      if(buttonstate){         message.setplayerstate(true);         mplaybutton.settext("play");     }      else{         message.setplayerstate(false);         mplaybutton.settext("stop");     }      return message; } 

so @nikis basicly right put there wrong path class , forgot import libary , didnt wrote native methods in java class itself. :)


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -