All pastes #2073847 Raw Edit

Untitled

public text v1 · immutable
#2073847 ·published 2011-06-02 20:39 UTC
rendered paste body
06-02 13:35:26.867: DEBUG/dalvikvm(211): Trying to load lib /data/data/com.example/lib/libexample-class-jni.so 0x44c06878
06-02 13:35:26.907: DEBUG/dalvikvm(211): Added shared lib /data/data/com.example/lib/libexample-class-jni.so 0x44c06878
06-02 13:35:26.907: DEBUG/dalvikvm(211): No JNI_OnLoad found in /data/data/com.example/lib/libexample-class-jni.so 0x44c06878
06-02 13:35:27.047: DEBUG/dalvikvm(96): GC freed 639 objects / 37376 bytes in 288ms
06-02 13:35:27.087: DEBUG/dalvikvm(211): +++ not scanning '/system/lib/libwebcore.so' for 'generate' (wrong CL)
06-02 13:35:27.107: DEBUG/dalvikvm(211): +++ not scanning '/system/lib/libmedia_jni.so' for 'generate' (wrong CL)
06-02 13:35:27.107: DEBUG/dalvikvm(211): +++ not scanning '/system/lib/libexif.so' for 'generate' (wrong CL)
06-02 13:35:27.107: DEBUG/dalvikvm(211): +++ not scanning '/system/lib/libsrec_jni.so' for 'generate' (wrong CL)
06-02 13:35:27.107: WARN/dalvikvm(211): No implementation found for native Lcom/example/ExampleClass;.generate ([SI)I
06-02 13:35:27.107: WARN/dalvikvm(211): threadid=15: thread exiting with uncaught exception (group=0x4001b188)
06-02 13:35:27.107: ERROR/AndroidRuntime(211): Uncaught handler: thread thread1 exiting due to uncaught exception
06-02 13:35:27.126: ERROR/AndroidRuntime(211): java.lang.UnsatisfiedLinkError: generate
06-02 13:35:27.126: ERROR/AndroidRuntime(211):     at com.example.ExampleClass.generateTone(Native Method)
06-02 13:35:27.126: ERROR/AndroidRuntime(211):     at com.example.ExampleClass.run(ExampleClass.java:27)
06-02 13:35:27.126: ERROR/AndroidRuntime(211):     at java.lang.Thread.run(Thread.java:1096)
06-02 13:35:27.238: DEBUG/dalvikvm(51): GC freed 6464 objects / 342984 bytes in 852ms
06-02 13:35:27.607: INFO/Process(51): Sending signal. PID: 211 SIG: 3




package com.example;

import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;

public class ExampleClass implements Runnable {
	static private final int mBufferSize = 8000;
	private AudioTrack mTrack;
	private short mBuffer[] = new short[mBufferSize];
	private int mSample;
	
	public ExampleClass() {		
		mTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO,
		AudioFormat.ENCODING_PCM_16BIT, mBufferSize * 2, AudioTrack.MODE_STREAM);
		mSample = 0;
	}
	
	public void run() {
		mTrack.play();
		while(true) {
			// fill the buffer
			generateTone(mBuffer, mBufferSize);
			mTrack.write(mBuffer, 0, mBufferSize);
		}
	}
		
	static {
		System.loadLibrary("example-class-jni");
	}
	
	public native int generate(short [] data, int size);
}



Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := example-class-jni
LOCAL_SRC_FILES := example-class-jni.cpp

# for logging
LOCAL_LDLIBS    += -llog


include $(BUILD_SHARED_LIBRARY)




example=class-jni.cpp:

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

#include <android/log.h>

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// for native asset manager
#include <sys/types.h>

#define SUCCESS 1

extern "C" {
	JNIEXPORT jint JNICALL Java_com_example_ExampleClass_generate(JNIEnv *env, jobject thiz, jshortArray data, jint size);
}

JNIEXPORT jint JNICALL Java_com_example_ExampleClass_generate(JNIEnv *env, jobject thiz, jshortArray data, jint size)
{
	return SUCCESS;
}