Crashing when trying to run Java Plugin

I’m trying to use some android features that aren’t implemented on Unity, so I decided to create a plugin for this.
I wrote a Java class to access the gps (just for testing) and return the values, turned it into a library, moved the classes.jar to my project and added it into my buildpath, copied my jar to my Assets/Plugins/Android folder with it’s AndroidManifest.xml, but everytime i try to run the app on my phone it closes without any error (even on logcat).
I got some Log.d on my java class and they do show on logcat.

Here is what i got:

Gps.java

package com.wilcx.testsuit;

import com.unity3d.player.UnityPlayerActivity;

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import com.unity3d.player.UnityPlayerActivity;

public class Gps extends UnityPlayerActivity implements LocationListener
{
		private Location location;
	
		private String provider;
		
		private LocationManager locationManager;
		
		private boolean locationUpdated = false;
		
		int lat = 0;
		int lng = 0;
		
	 	@Override
	    protected void onCreate(Bundle myBundle) 
	 	{
	        super.onCreate(myBundle);	   
	        
	        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
			
			Criteria criteria = new Criteria();
			
		    provider = locationManager.getBestProvider(criteria, false);
	        
	        Log.d("unity", "create");
	    }
	 	
	 	public void InitializeGPS()
	 	{
	 		Log.d("unity", "initialize");
	 			 				    	    
		    location = locationManager.getLastKnownLocation(provider);
		    
		    locationManager.requestLocationUpdates(provider, 400, 1, this);
	 	}
	 	
	 	public boolean GetGpsStatus()
	 	{
			return locationUpdated;
	 	}
	 	
	 	 public void onLocationChanged(Location location) 
	 	 {
	 		locationUpdated = true; 
	 		 
	 		lat = (int) (location.getLatitude());
	 		
		    lng = (int) (location.getLongitude());
	 	 }
	 	 
	 	 public int GetLat()
	 	 {
			return lat;	 		 
	 	 }
	 	 
	 	public int GetLng()
	 	 {
			return lng;	 		 
	 	 }

		@Override
		public void onProviderDisabled(String arg0)
		{
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onProviderEnabled(String arg0)
		{
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onStatusChanged(String arg0, int arg1, Bundle arg2)
		{
			// TODO Auto-generated method stub
			
		}
	 	 
		@Override
		protected void onResume() 
		{		
			super.onResume();
			
			Log.d("unity", "resume");
			locationManager.requestLocationUpdates(provider, 400, 1, this);
		 }
		
		@Override
		protected void onPause() 
		{
			super.onResume();
			Log.d("unity", "pause");
			locationManager.removeUpdates(this);
		 }
}

Android Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.wilcx.testsuit"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
 	
 	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  	<uses-permission android:name="android.permission.INTERNET"/>
 
    <application android:label="@string/app_name">
        <activity android:name=".Gps"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

My C# class:

using UnityEngine;
using System.Collections;

public class PluginAccess : MonoBehaviour 
{
private AndroidJavaObject GPS;

public UILabel label;

/// <summary>
/// Start this instance.
/// </summary>
void Start () 
{
	AndroidJNI.AttachCurrentThread();

	GPS = new AndroidJavaObject("com.wilcx.testsuit.Gps");

	GPS.Call("InitializeGPS");

	label.text = GPS.Call<bool>("GetGpsStatus").ToString();

	Debug.Log("Fora do Loop");

	while(!GPS.Call<bool>("GetGpsStatus"))
	{
		label.text = "Lat Not Set";

		Debug.Log("Dentro do Loop");
	}

	int lat = GPS.Call<int>("GetLat");

	label.text = lat.ToString();

}
}

I am not sure but here is what you should try :-

  AndroidJNI.AttachCurrentThread();
	pluginTutorialActivityJavaClass = new AndroidJavaClass("com.wilcx.testsuit.Gps");
	mObject = pluginTutorialActivityJavaClass.CallStatic<AndroidJavaObject>("GetActivity");

On java save your activity to a static variable in OnCreate like this mContext = this
and add this function.

public static Activity GetActivity(){
	return mContext;
}

I suggest you try following the tutorial here, which explains in detail how to code a plugin for exactly the same outcome as you are aiming for: