我得到了下面的代碼我templateApp.java內:發送加速度計C/C++
package com.android.templateApp;
import android.app.Activity;
import android.os.Bundle;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class templateApp extends Activity implements SensorEventListener
{
GL2View mView;
SensorManager mSensorManager;
@Override protected void onCreate(Bundle icicle)
{
super.onCreate(icicle);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mView = new GL2View(getApplication());
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER),
SensorManager.SENSOR_DELAY_GAME);
setContentView(mView);
}
@Override protected void onResume()
{
super.onResume();
mView.onResume();
}
public static native void Accelerometer(float x, float y, float z);
public void onSensorChanged(SensorEvent event)
{
float x = event.values[ SensorManager.DATA_X ],
y = event.values[ SensorManager.DATA_Y ],
z = event.values[ SensorManager.DATA_Z ];
// ALWAYS CRASH HERE!!!!
Accelerometer(x, y, z);
}
public void onAccuracyChanged(Sensor sensor, int arg1) {}
}
而且我templateApp.cpp裏面我得到了以下彌合加速度功能:
extern "C"
{
JNIEXPORT void JNICALL Java_com_android_templateApp_GL2View_Init(JNIEnv *env, jobject obj, jint width, jint height);
JNIEXPORT void JNICALL Java_com_android_templateApp_templateApp_Accelerometer(JNIEnv *env, jfloat x, jfloat y, jfloat z);
};
JNIEXPORT void JNICALL Java_com_android_templateApp_GL2View_Init(JNIEnv *env, jobject obj, jint width, jint height)
{ Init(width, height); }
JNIEXPORT void JNICALL Java_com_android_templateApp_templateApp_Accelerometer(JNIEnv *env, jfloat x, jfloat y, jfloat z)
{ Accelerometer(x, y,z); }
當我在通過我的鼠標在eclipse它表明呼叫屬於 com.android.templateApp.templateApp.Accelerometer,這正是我聲明,但它總是崩潰報告的UnsatisfiedLinkError。
我試過每種組合(假設我的本地定義是錯誤的),但它在Java代碼中的加速器調用中不斷崩潰......奇怪的是,我的GL2View.java中的init函數工作完美無缺。是否有什麼阻止我從擴展Activity的主文件調用本地API?因爲傳感器工作,我打印的價值其本機通話崩潰,我不知道爲什麼。
韓國社交協會提前!
嗬!等待可能的電話發生之前(因爲加速計是該死的快)圖書館被加載!讓我檢查一下。 – McBob 2011-06-10 08:21:05
這樣做...... Tks一堆! – McBob 2011-06-10 08:23:46
OK等問題......值是錯誤的...它似乎有某種轉換的需要被一個jfloat之間做一個浮...是否有可能或? – McBob 2011-06-10 14:40:07