Mises à jour GPS en direct dans la programmation java


J'ai un problème avec l'obtention du GPS pour mettre à jour l'emplacement en direct lorsque l'application est en cours d'exécution. Je peux obtenir l'emplacement une fois et la latitude et le longitugde seront alors statiques. J'ai changé du code et maintenant il continue de planter. Ceci est le code GPSTracking:

public class GPSTracking extends Service {

public GPSTracking(Context context){
    this.context = context;
    getLocation();
}

private final Context context;
private boolean isNetworkEnabled = false;
private boolean canGetLocation = false;

private double latitude;
private double longitude;
private Location location;

private static final long MIN_DISTANCE_FOR_UPDATES = 0;
private static final long MIN_TIME_BW_UPDATES = 1;

protected LocationManager locationManager;


private final LocationListener locationListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
        setLongitude(location.getLongitude());
        setLatitude(location.getLatitude());

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
};

public boolean isGPSEnabled(){
    if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
        return true;
    else
        return false;
}

public Location getLocation(){
    try {
        locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
        if (!canGetLocation){
        } else {
            this.canGetLocation = true;

            if (isNetworkEnabled) {
                locationManager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER,
                        MIN_TIME_BW_UPDATES,
                        MIN_DISTANCE_FOR_UPDATES,
                        locationListener);
            }
            if (locationManager != null){
                location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                if (location != null){
                    setLatitude(location.getLatitude());
                    setLongitude(location.getLongitude());
                }
            }
            if (isGPSEnabled()) {
                if (location == null)
                    locationManager.requestLocationUpdates(
                            LocationManager.GPS_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_FOR_UPDATES,
                            locationListener);

                if (locationManager != null) {

                    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                    if (location != null) {
                        setLatitude(location.getLatitude());
                        setLongitude(location.getLongitude());
                    }
                }
            }
        }
    } catch (Exception e){
        e.printStackTrace();
    }

    return location;
}

private void setLongitude(double longitude){this.longitude = longitude;}
private void setLatitude(double latitude){this.latitude = latitude;}

public double getLatitude(){
    if(location != null){
        latitude = location.getLatitude();
    }
    return this.latitude;
}

public double getLongitude() {
    if (location != null){
        longitude = location.getLongitude();
    }
    return this.longitude;
}

public void stopUsingGPS(){
    if(locationManager != null){
        locationManager.removeUpdates(locationListener);
    }
}

public boolean canGetLocation(){
    locationManager =(LocationManager) context.getSystemService(LOCATION_SERVICE);
    if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)&&
            locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
        canGetLocation =true;
    else
        canGetLocation = false;
    return this.canGetLocation;
}

public void showSettingsAlert(){
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
    alertDialog.setTitle("GPS is settings");
    alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
    alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which){
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            context.startActivity(intent);
        }
    });
    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        }
    });
    alertDialog.show();
}



@Override
public IBinder onBind(Intent intent) {
    return null;
}

C'est le code de DrawingBoard qui active la classe GPSTracking:

public class DrawingBoard extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drawing_board);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_drawing_board, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

public static boolean isGPSStarted = false;
GPSTracking gps = new GPSTracking(this);

public void updateText(GPSTracking gps){
    TextView textViewLat = (TextView) this.findViewById(R.id.textLatNumber);
    TextView textViewLong = (TextView) this.findViewById(R.id.textLongNumber);
    textViewLat.setText(Double.toString(gps.getLatitude()));
    textViewLong.setText(Double.toString(gps.getLongitude()));
}

public void startGPSTracking(View view){
    if (gps.canGetLocation()) {
        isGPSStarted = true;
        gps.getLocation();
        updateText(gps);
    } else {gps.showSettingsAlert();}
}

public void stopGPS (View view) {
    gps.stopUsingGPS();
    isGPSStarted = false;
    TextView textViewLat = (TextView) this.findViewById(R.id.textLatNumber);
    TextView textViewLong = (TextView) this.findViewById(R.id.textLongNumber);
    textViewLat.setText(" ");
    textViewLong.setText(" ");
}

C'est l'erreur que je reçoit:

04-15 10:03:22.941  22291-22291/com.example.jesper.miniprojectprogram E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.example.jesper.miniprojectprogram, PID: 22291
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.jesper.miniprojectprogram/com.example.jesper.miniprojectprogram.DrawingBoard}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2322)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5696)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
        at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:105)
        at com.example.jesper.miniprojectprogram.GPSTracking.<init>(GPSTracking.java:23)
        at com.example.jesper.miniprojectprogram.DrawingBoard.<init>(DrawingBoard.java:41)
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at java.lang.Class.newInstance(Class.java:1572)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1083)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2312)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5696)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)

Quelqu'un peut-il voir où le conflit se produit et comment le résoudre?

Voici le contextWrapper.java:

public class ContextWrapper extends Context {
Context mBase;
private static Context mContext;
public ContextWrapper(Context base) {
    mBase = base;
}

/**
 * Set the base context for this ContextWrapper.  All calls will then be
 * delegated to the base context.  Throws
 * IllegalStateException if a base context has already been set.
 * 
 * @param base The new base context for this wrapper.
 */
protected void attachBaseContext(Context base) {
    if (mBase != null) {
        throw new IllegalStateException("Base context already set");
    }
    mBase = base;
}

/**
 * @return the base context as set by the constructor or setBaseContext
 */
public Context getBaseContext() {
    return mBase;
}

@Override
public AssetManager getAssets() {
    return mBase.getAssets();
}

@Override
public Resources getResources()
{
    return mBase.getResources();
}

@Override
public PackageManager getPackageManager() {
    return mBase.getPackageManager();
}

@Override
public ContentResolver getContentResolver() {
    return mBase.getContentResolver();
}

@Override
public Looper getMainLooper() {
    return mBase.getMainLooper();
}

@Override
public Context getApplicationContext() {
    return mBase.getApplicationContext();
}

@Override
public void setTheme(int resid) {
    mBase.setTheme(resid);
}

/** @hide */
@Override
public int getThemeResId() {
    return mBase.getThemeResId();
}

@Override
public Resources.Theme getTheme() {
    return mBase.getTheme();
}

@Override
public ClassLoader getClassLoader() {
    return mBase.getClassLoader();
}

@Override
public String getPackageName() {
    return mBase.getPackageName();
}

/** @hide */
@Override
public String getBasePackageName() {
    return mBase.getBasePackageName();
}

/** @hide */
@Override
public String getOpPackageName() {
    return mBase.getOpPackageName();
}

@Override
public ApplicationInfo getApplicationInfo() {
    return mBase.getApplicationInfo();
}

@Override
public String getPackageResourcePath() {
    return mBase.getPackageResourcePath();
}

@Override
public String getPackageCodePath() {
    return mBase.getPackageCodePath();
}

/** @hide */
@Override
public File getSharedPrefsFile(String name) {
    return mBase.getSharedPrefsFile(name);
}

@Override
public SharedPreferences getSharedPreferences(String name, int mode) {
    return mBase.getSharedPreferences(name, mode);
}

@Override
public FileInputStream openFileInput(String name)
    throws FileNotFoundException {
    return mBase.openFileInput(name);
}

@Override
public FileOutputStream openFileOutput(String name, int mode)
    throws FileNotFoundException {
    return mBase.openFileOutput(name, mode);
}

@Override
public boolean deleteFile(String name) {
    return mBase.deleteFile(name);
}

@Override
public File getFileStreamPath(String name) {
    return mBase.getFileStreamPath(name);
}

@Override
public String[] fileList() {
    return mBase.fileList();
}

@Override
public File getFilesDir() {
    return mBase.getFilesDir();
}

@Override
public File getNoBackupFilesDir() {
    return mBase.getNoBackupFilesDir();
}

@Override
public File getExternalFilesDir(String type) {
    return mBase.getExternalFilesDir(type);
}

@Override
public File[] getExternalFilesDirs(String type) {
    return mBase.getExternalFilesDirs(type);
}

@Override
public File getObbDir() {
    return mBase.getObbDir();
}

@Override
public File[] getObbDirs() {
    return mBase.getObbDirs();
}

@Override
public File getCacheDir() {
    return mBase.getCacheDir();
}

@Override
public File getCodeCacheDir() {
    return mBase.getCodeCacheDir();
}

@Override
public File getExternalCacheDir() {
    return mBase.getExternalCacheDir();
}

@Override
public File[] getExternalCacheDirs() {
    return mBase.getExternalCacheDirs();
}

@Override
public File[] getExternalMediaDirs() {
    return mBase.getExternalMediaDirs();
}

@Override
public File getDir(String name, int mode) {
    return mBase.getDir(name, mode);
}

@Override
public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
    return mBase.openOrCreateDatabase(name, mode, factory);
}

@Override
public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory,
        DatabaseErrorHandler errorHandler) {
    return mBase.openOrCreateDatabase(name, mode, factory, errorHandler);
}

@Override
public boolean deleteDatabase(String name) {
    return mBase.deleteDatabase(name);
}

@Override
public File getDatabasePath(String name) {
    return mBase.getDatabasePath(name);
}

@Override
public String[] databaseList() {
    return mBase.databaseList();
}

@Override
public Drawable getWallpaper() {
    return mBase.getWallpaper();
}

@Override
public Drawable peekWallpaper() {
    return mBase.peekWallpaper();
}

@Override
public int getWallpaperDesiredMinimumWidth() {
    return mBase.getWallpaperDesiredMinimumWidth();
}

@Override
public int getWallpaperDesiredMinimumHeight() {
    return mBase.getWallpaperDesiredMinimumHeight();
}

@Override
public void setWallpaper(Bitmap bitmap) throws IOException {
    mBase.setWallpaper(bitmap);
}

@Override
public void setWallpaper(InputStream data) throws IOException {
    mBase.setWallpaper(data);
}

@Override
public void clearWallpaper() throws IOException {
    mBase.clearWallpaper();
}

@Override
public void startActivity(Intent intent) {
    mBase.startActivity(intent);
}

/** @hide */
@Override
public void startActivityAsUser(Intent intent, UserHandle user) {
    mBase.startActivityAsUser(intent, user);
}

@Override
public void startActivity(Intent intent, Bundle options) {
    mBase.startActivity(intent, options);
}

/** @hide */
@Override
public void startActivityAsUser(Intent intent, Bundle options, UserHandle user) {
    mBase.startActivityAsUser(intent, options, user);
}

@Override
public void startActivities(Intent[] intents) {
    mBase.startActivities(intents);
}

@Override
public void startActivities(Intent[] intents, Bundle options) {
    mBase.startActivities(intents, options);
}

/** @hide */
@Override
public void startActivitiesAsUser(Intent[] intents, Bundle options, UserHandle userHandle) {
    mBase.startActivitiesAsUser(intents, options, userHandle);
}

@Override
public void startIntentSender(IntentSender intent,
        Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
        throws IntentSender.SendIntentException {
    mBase.startIntentSender(intent, fillInIntent, flagsMask,
            flagsValues, extraFlags);
}

@Override
public void startIntentSender(IntentSender intent,
        Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags,
        Bundle options) throws IntentSender.SendIntentException {
    mBase.startIntentSender(intent, fillInIntent, flagsMask,
            flagsValues, extraFlags, options);
}

@Override
public void sendBroadcast(Intent intent) {
    mBase.sendBroadcast(intent);
}

@Override
public void sendBroadcast(Intent intent, String receiverPermission) {
    mBase.sendBroadcast(intent, receiverPermission);
}

/** @hide */
@Override
public void sendBroadcast(Intent intent, String receiverPermission, int appOp) {
    mBase.sendBroadcast(intent, receiverPermission, appOp);
}

@Override
public void sendOrderedBroadcast(Intent intent,
        String receiverPermission) {
    mBase.sendOrderedBroadcast(intent, receiverPermission);
}

@Override
public void sendOrderedBroadcast(
    Intent intent, String receiverPermission, BroadcastReceiver resultReceiver,
    Handler scheduler, int initialCode, String initialData,
    Bundle initialExtras) {
    mBase.sendOrderedBroadcast(intent, receiverPermission,
            resultReceiver, scheduler, initialCode,
            initialData, initialExtras);
}

/** @hide */
@Override
public void sendOrderedBroadcast(
    Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver,
    Handler scheduler, int initialCode, String initialData,
    Bundle initialExtras) {
    mBase.sendOrderedBroadcast(intent, receiverPermission, appOp,
            resultReceiver, scheduler, initialCode,
            initialData, initialExtras);
}

@Override
public void sendBroadcastAsUser(Intent intent, UserHandle user) {
    mBase.sendBroadcastAsUser(intent, user);
}

@Override
public void sendBroadcastAsUser(Intent intent, UserHandle user,
        String receiverPermission) {
    mBase.sendBroadcastAsUser(intent, user, receiverPermission);
}

@Override
public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
        String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler,
        int initialCode, String initialData, Bundle initialExtras) {
    mBase.sendOrderedBroadcastAsUser(intent, user, receiverPermission, resultReceiver,
            scheduler, initialCode, initialData, initialExtras);
}

/** @hide */
@Override
public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
        String receiverPermission, int appOp, BroadcastReceiver resultReceiver,
        Handler scheduler,
        int initialCode, String initialData, Bundle initialExtras) {
    mBase.sendOrderedBroadcastAsUser(intent, user, receiverPermission, appOp, resultReceiver,
            scheduler, initialCode, initialData, initialExtras);
}

@Override
public void sendStickyBroadcast(Intent intent) {
    mBase.sendStickyBroadcast(intent);
}

@Override
public void sendStickyOrderedBroadcast(
    Intent intent, BroadcastReceiver resultReceiver,
    Handler scheduler, int initialCode, String initialData,
    Bundle initialExtras) {
    mBase.sendStickyOrderedBroadcast(intent,
            resultReceiver, scheduler, initialCode,
            initialData, initialExtras);
}

@Override
public void removeStickyBroadcast(Intent intent) {
    mBase.removeStickyBroadcast(intent);
}

@Override
public void sendStickyBroadcastAsUser(Intent intent, UserHandle user) {
    mBase.sendStickyBroadcastAsUser(intent, user);
}

@Override
public void sendStickyOrderedBroadcastAsUser(Intent intent,
        UserHandle user, BroadcastReceiver resultReceiver,
        Handler scheduler, int initialCode, String initialData,
        Bundle initialExtras) {
    mBase.sendStickyOrderedBroadcastAsUser(intent, user, resultReceiver,
            scheduler, initialCode, initialData, initialExtras);
}

@Override
public void removeStickyBroadcastAsUser(Intent intent, UserHandle user) {
    mBase.removeStickyBroadcastAsUser(intent, user);
}

@Override
public Intent registerReceiver(
    BroadcastReceiver receiver, IntentFilter filter) {
    return mBase.registerReceiver(receiver, filter);
}

@Override
public Intent registerReceiver(
    BroadcastReceiver receiver, IntentFilter filter,
    String broadcastPermission, Handler scheduler) {
    return mBase.registerReceiver(receiver, filter, broadcastPermission,
            scheduler);
}

/** @hide */
@Override
public Intent registerReceiverAsUser(
    BroadcastReceiver receiver, UserHandle user, IntentFilter filter,
    String broadcastPermission, Handler scheduler) {
    return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission,
            scheduler);
}

@Override
public void unregisterReceiver(BroadcastReceiver receiver) {
    mBase.unregisterReceiver(receiver);
}

@Override
public ComponentName startService(Intent service) {
    return mBase.startService(service);
}

@Override
public boolean stopService(Intent name) {
    return mBase.stopService(name);
}

/** @hide */
@Override
public ComponentName startServiceAsUser(Intent service, UserHandle user) {
    return mBase.startServiceAsUser(service, user);
}

/** @hide */
@Override
public boolean stopServiceAsUser(Intent name, UserHandle user) {
    return mBase.stopServiceAsUser(name, user);
}

@Override
public boolean bindService(Intent service, ServiceConnection conn,
        int flags) {
    return mBase.bindService(service, conn, flags);
}

/** @hide */
@Override
public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags,
        UserHandle user) {
    return mBase.bindServiceAsUser(service, conn, flags, user);
}

@Override
public void unbindService(ServiceConnection conn) {
    mBase.unbindService(conn);
}

@Override
public boolean startInstrumentation(ComponentName className,
        String profileFile, Bundle arguments) {
    return mBase.startInstrumentation(className, profileFile, arguments);
}

@Override
public Object getSystemService(String name) {
    return mBase.getSystemService(name);
}

@Override
public int checkPermission(String permission, int pid, int uid) {
    return mBase.checkPermission(permission, pid, uid);
}

@Override
public int checkCallingPermission(String permission) {
    return mBase.checkCallingPermission(permission);
}

@Override
public int checkCallingOrSelfPermission(String permission) {
    return mBase.checkCallingOrSelfPermission(permission);
}

@Override
public void enforcePermission(
        String permission, int pid, int uid, String message) {
    mBase.enforcePermission(permission, pid, uid, message);
}

@Override
public void enforceCallingPermission(String permission, String message) {
    mBase.enforceCallingPermission(permission, message);
}

@Override
public void enforceCallingOrSelfPermission(
        String permission, String message) {
    mBase.enforceCallingOrSelfPermission(permission, message);
}

@Override
public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
    mBase.grantUriPermission(toPackage, uri, modeFlags);
}

@Override
public void revokeUriPermission(Uri uri, int modeFlags) {
    mBase.revokeUriPermission(uri, modeFlags);
}

@Override
public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
    return mBase.checkUriPermission(uri, pid, uid, modeFlags);
}

@Override
public int checkCallingUriPermission(Uri uri, int modeFlags) {
    return mBase.checkCallingUriPermission(uri, modeFlags);
}

@Override
public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
    return mBase.checkCallingOrSelfUriPermission(uri, modeFlags);
}

@Override
public int checkUriPermission(Uri uri, String readPermission,
        String writePermission, int pid, int uid, int modeFlags) {
    return mBase.checkUriPermission(uri, readPermission, writePermission,
            pid, uid, modeFlags);
}

@Override
public void enforceUriPermission(
        Uri uri, int pid, int uid, int modeFlags, String message) {
    mBase.enforceUriPermission(uri, pid, uid, modeFlags, message);
}

@Override
public void enforceCallingUriPermission(
        Uri uri, int modeFlags, String message) {
    mBase.enforceCallingUriPermission(uri, modeFlags, message);
}

@Override
public void enforceCallingOrSelfUriPermission(
        Uri uri, int modeFlags, String message) {
    mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message);
}

@Override
public void enforceUriPermission(
        Uri uri, String readPermission, String writePermission,
        int pid, int uid, int modeFlags, String message) {
    mBase.enforceUriPermission(
            uri, readPermission, writePermission, pid, uid, modeFlags,
            message);
}

@Override
public Context createPackageContext(String packageName, int flags)
    throws PackageManager.NameNotFoundException {
    return mBase.createPackageContext(packageName, flags);
}

/** @hide */
@Override
public Context createPackageContextAsUser(String packageName, int flags, UserHandle user)
        throws PackageManager.NameNotFoundException {
    return mBase.createPackageContextAsUser(packageName, flags, user);
}

/** @hide */
public Context createApplicationContext(ApplicationInfo application,
        int flags) throws PackageManager.NameNotFoundException {
    return mBase.createApplicationContext(application, flags);
}

/** @hide */
@Override
public int getUserId() {
    return mBase.getUserId();
}

@Override
public Context createConfigurationContext(Configuration overrideConfiguration) {
    return mBase.createConfigurationContext(overrideConfiguration);
}

@Override
public Context createDisplayContext(Display display) {
    return mBase.createDisplayContext(display);
}

@Override
public boolean isRestricted() {
    return mBase.isRestricted();
}

/** @hide */
@Override
public DisplayAdjustments getDisplayAdjustments(int displayId) {
    return mBase.getDisplayAdjustments(displayId);
}
Author: Aagren, 2015-04-15

1 answers

Vous avez un problème dans DrawingBoard.classe @ligne GPSTracking gps = new GPSTracking(this);

Vous initialisez la classe GPSTracking avant le chargement de l'activité, donc à ce moment-là, votre référence de contexte d'activité this est nulle.

Essayez d'initialiser GPSTracking dans OnCreate ().

 0
Author: Kirankumar Zinzuvadia, 2015-04-15 09:46:33