Xamarin.Android i Google Places Api

0

Witajcie.

Próbuje zaimplementować możliwość korzystania z Google Places Api.

AutocompleteFilter filter = new AutocompleteFilter.Builder()
                .SetCountry("PL")
                .Build();
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.ModeOverlay)
                .SetFilter(filter)
                .Build(this);

StartActivityForResult(intent, 1);

W taki sposób wywołuje auto uzupełnianie.
Niestety nie wiem dlaczego dostaję ten błąd.
Java.Lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
Tyczy się on zapisu "this".

Czy będziecie mi w stanie pomóc?

0

Nie powinno być przypadkiem .Build(this.filter) lub zupełnie bez this?

0
[Activity(Label = "Label", Theme = "@style/AppTheme.NoActionBar")]
public class ClassName: AppCompatActivity

W nawiasach klamrowych opisujesz akcje. W takim zapisie, słowo kluczowe this oznacza m.in. Activity, można bez problemu rzutować na Context.
Najdziwniejsze dla mnie był fakt że referencja do obiektu this "działała". Błąd pojawiał się w innym miejscu.

StartActivityForResult(intent, 1);

Przy tym zapisie dopiero pojawiał się błąd, więc jedną linie niżej. Komunikat błędu był ten sam.

Edit:
W sensie tworzyłem nowy obiekt do którego przypisywałem this, tworząc tym samym referencje do oryginalnego obiektu.

Activity thisActivity = this;

Edit 2:
Wyczytałem na StackOverFlow że to prawdopodobnie jest błąd z GooglePlayServices ale nic konkretnego nie znalazłem. Tyle że w innej akcji wykorzystuje Mapy Google i one działają bez problemu więc GooglePlayServices działa.

0

Problem prawdopodobnie występuje w manifeście.

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme.NoActionBar">
		<!-- Put your Google Maps V2 API Key here. This key will not work for you.-->
    <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="Google_Api_Key" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="Google_Api_Key"/>
    <meta-data 
      android:name="com.google.android.geo.gms.version" 
      android:value="@integer/google_play_services_version" />
  </application>

Jako rozwiązanie część osób na SOF podaje dodanie zapisu

<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="Google_Api_Key"/>
<fragment
	android:id="@+id/map"
	class="com.google.android.gms.maps.SupportMapFragment"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>

Niestety w moim przypadku dodanie tego wpisu do manifestu powoduje problem z elementem fragment który pobieram z klasy class="com.google.android.gms.maps.SupportMapFragment" powoduje następujący błąd:
Android.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment

1 użytkowników online, w tym zalogowanych: 0, gości: 1