2016-11-08 3 views
0

Обновление Android Studio от 2.2.1 до 2.2.2 полностью нарушило мой проект, так как я не могу получить доступ к чему-либо, связанному с Google Maps. Мой проект работал отлично до обновления, но сейчас ничего не работает. Создание совершенно нового проекта, основанного на Google Maps Activity, не работает и дает мне тот же отчет о сбоях и результаты.Обновление Android Studio прерывает Google Maps

Что я пробовал: - Обновление всех моих SDK, особенно связанных с Google. - Сформирован новый Google API Key - Создание совершенно новый проект с нулем - Изменено SupportMapFragment к MapFragment

Ошибки я получаю, когда я пытаюсь запустить свой проект и совершенно новые карты проект на моем телефоне (тот же ошибки (все остальные Gmaps приложения работают на моем телефоне, поэтому я не думаю, что это вопрос)):

Caused by: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment 

Мой build.gradle (новый проект с нуля):

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.2" 
defaultConfig { 
    applicationId "com.example.simon.afinal" 
    minSdkVersion 19 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.google.android.gms:play-services:9.8.0' 
testCompile 'junit:junit:4.12' 
} 

Стандартные карты Активность:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

private GoogleMap mMap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 


@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
} 
} 

Gmaps XML файл макета:

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:map="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/map" 
android:name="com.google.android.gms.maps.SupportMapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.simon.afinal.MapsActivity" 
tools:layout="@layout/activity_maps" /> 

Вся помощь очень ценится!

ответ

0

использовать это для получения карты Google

if (googleMap == null) { 

      googleMap = ((SupportMapFragment) getChildFragmentManager() 
        .findFragmentById(R.id.map)).getMap(); 

в XML-карте в макете кадра как

<fragment 
       android:id="@+id/map" 
       class="com.google.android.gms.maps.SupportMapFragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 

onMapReady Метод Как это

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     this.googleMap = googleMap; 


    } 
+0

дает мне ту же ошибку –

0

библиотеку, вы должны импортировать для карт в файле gradle отличается. Меняйте зависимостей соответственно

компиляции 'com.google.android.gms: играть-услуги: 9.8.0'

compile 'com.android.support:appcompat-v7:24.2.1' 
testCompile 'junit:junit:4.12' 
compile 'com.google.android.gms:play-services-maps:9.8.0' 

Объявите свой класс, как:

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback { 

Или быть убедитесь, что ваш фрагмент - это v4-пакет.

Это должно работать, как основные шаги, чтобы получить карту

+0

FragmentActivity является definently v4, используя AppCombatActivity нет никакой разницы, та же ошибка. –

+0

и как насчет зависимостей? вы его изменили? –

+0

Да, я изменил зависимости, как вы просили в новом действии, которое я сделал исключительно для его проверки. Зависимости от моего старого проекта, который работал отлично до этого, зависимости выглядели так: 'compile 'com.google.android.gms: play-services-maps: 9.8.0' compile 'com.google.android.gms: play -services-location: 9.8.0 ' compile' com.google.android.gms: play-services-plus: 9.8.0 ' compile' com.google.android.gms: play-services-base: 9.8.0 ' compile' com.google.android.gms: play-services-auth: 9.8.0 ' compile' com.google.android.gms: play-services-places: 9.8.0'' –