Hi !
I create this cod:
=== java code ====
package org.hecl.android;
import android.app.Application;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.location.GpsStatus;
import android.location.GpsStatus.Listener;
import java.util.Iterator;
import android.location.GpsSatellite;
import android.os.Handler;
import java.util.Vector;
import org.hecl.ListThing;
import org.hecl.ObjectThing;
import org.hecl.DoubleThing;
import org.hecl.HeclException;
import org.hecl.Interp;
import org.hecl.IntThing;
import org.hecl.ListThing;
import org.hecl.LongThing;
import org.hecl.ObjectThing;
import org.hecl.Properties;
import org.hecl.StringThing;
import org.hecl.Thing;
public class LocationGet extends Application {
public static Interp interp;
public Thing onLocationChangedCallBack = null;
public LocationListener createListener(LocationManager locationManager) {
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
if (onLocationChangedCallBack != null) {
try {
Vector vec = ListThing.get(onLocationChangedCallBack.deepcopy());
vec.add(ObjectThing.create(location));
--- this crash program ---->>>>> interp.eval(ListThing.create(vec));
} catch (HeclException he) {
Log.v("hecl onLocationhanged callback", he.toString());
}
}
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
return locationListener;
}
public void requestLocationUpdatesGPS(LocationManager locationManager, LocationListener locationListener) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500, 5, locationListener);
}
public void requestLocationUpdatesGSM(LocationManager locationManager, LocationListener locationListener) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 50, locationListener);
}
public void removeUpdates(LocationManager locationManager, LocationListener locationListener) {
locationManager.removeUpdates(locationListener);
}
public void appDestroy() {
//if (backgroundThread!=null) backgroundThread.interrupt();
System.runFinalizersOnExit(true);
System.exit(0);
}
}
=== end java code ==========================================
in hecl this eval:
== hecl code ==
java android.location.LocationManager lm
java android.location.LocationProvider lp
java android.location.LocationListener ll
java org.hecl.android.locationGet locationget
set locationservice [$context getsystemservice LOCATION_SERVICE]
set locationGet [locationget -new {}]
set locationListener [$locationGet createListener $locationservice]
$locationGet -field onLocationChangedCallBack myproc
proc myproc { args } {
}
=== end hecl code ===
but my program crash on this row:
interp.eval(ListThing.create(vec));
What to do?
Thanks !