Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события

Обсуждение уроков
Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 05 фев 2014, 20:35

qwe писал(а):
rezak90 писал(а):трасирвока ошибки в LogCat
Дело в том, что у меня еклипс не работает с Google maps ( он затыкается с сообщением Google Play Store is missing). Поэтому я тестирую на телефоне.
создайте эмулятор с google API
Изображение

qwe
Сообщения: 10
Зарегистрирован: 04 ноя 2013, 23:29

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение qwe » 05 фев 2014, 21:35

altwin писал(а):
qwe писал(а):Имеется Swipe Views with Tabs состоит из 3 фрагментов. Вставил Google maps в первый Fragment. При переходе с 1 на 2 фрагмент и обратно все работает, но стоит зайти на 3-ий фрагмент а затем вернуться на 1 или 2 фрагмент - приложение крашится. Подскажите в чем проблема?

Код: Выделить всё

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

public class Fragment1 extends Fragment {
	
	SupportMapFragment mapFragment;
	  GoogleMap map;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, 
			Bundle savedInstanceState) {

		View rootView = inflater.inflate(R.layout.fragment1,
				container, false);

		
		mapFragment = (SupportMapFragment) getFragmentManager()
		        .findFragmentById(R.id.map); 
		map = mapFragment.getMap();
		if (map == null) {
		getActivity().finish();  }
	    
	     
	
		
		return rootView;
	}	  
	    	  
	}
попробуйте: mViewPager.setOffScreenPageLimit(4); Очень похоже, что у вас просто не помещаются три фрагмента в памяти. Как варриант почитайте тему: http://stackoverflow.com/questions/9440 ... s-a-parent
Спасибо!!! mViewPager.setOffScreenPageLimit(4); - помогло.

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 16:33

При запуске приложения на устройстве у меня возникает ошибка "В приложении "..." произошла ошибка". После того как я упростил прогу (убрал fragment и код с картой) прога запустилась. В чем может быть проблема? (Устройство: версия Android - 4.0.3, Google Play Market 4.5.10). Спасибо.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 16:43

naluvajko писал(а):При запуске приложения на устройстве у меня возникает ошибка "В приложении "..." произошла ошибка". После того как я упростил прогу (убрал fragment и код с картой) прога запустилась. В чем может быть проблема? (Устройство: версия Android - 4.0.3, Google Play Market 4.5.10). Спасибо.
проблема в том, что код который вы убрали содержит ошибку :) Тут нострадамусов нет, может ошибка / опечатка и т.д., может в google console приложение не созданно и вы не правильно ключи используете, может что угодно быть. Код ошибки, вывод LogCat, без этого как вам ответить то?
Изображение

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 17:25

altwin писал(а):
naluvajko писал(а):При запуске приложения на устройстве у меня возникает ошибка "В приложении "..." произошла ошибка". После того как я упростил прогу (убрал fragment и код с картой) прога запустилась. В чем может быть проблема? (Устройство: версия Android - 4.0.3, Google Play Market 4.5.10). Спасибо.
проблема в том, что код который вы убрали содержит ошибку :) Тут нострадамусов нет, может ошибка / опечатка и т.д., может в google console приложение не созданно и вы не правильно ключи используете, может что угодно быть. Код ошибки, вывод LogCat, без этого как вам ответить то?
LogCat не могу использовать, потому что на эмуляторе не запускается прога. Я убрал весь код связан с картой и оставил только 2 елемента : кнопку и fragment. Запускаю прогу - ошибка, убираю fragment с xml - все работает. В обоих случаях MainActivity extends FragmentActivity. Может какие-то дополнительные настройки проекта должны быть?
Последний раз редактировалось naluvajko 06 фев 2014, 17:30, всего редактировалось 1 раз.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 17:27

naluvajko писал(а):fragment: запускаю
как?
LogCat не могу использовать, потому что на эмуляторе не запускается прога.
значит нужно разбираться почему не запускается и исправлять либо "рутовать" девайс, без отладки и доступа к LogCat бесполезно пытаться заниматься разработкой приложений.
Последний раз редактировалось altwin 06 фев 2014, 17:31, всего редактировалось 1 раз.
Изображение

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 17:29

altwin писал(а):
naluvajko писал(а):fragment: запускаю
как?
Запускаю прогу на устройстве. Я исправил предыдущее сообщение.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 17:31

naluvajko писал(а):
altwin писал(а):
naluvajko писал(а):fragment: запускаю
как?
Запускаю прогу на устройстве.
это я догадался, хотелось бы код увидеть, который за это отвечает.... ;)
Изображение

ArseniySafin
Сообщения: 22
Зарегистрирован: 26 ноя 2013, 22:12

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение ArseniySafin » 06 фев 2014, 21:48

Всем привет!
Кто-нибудь уже добавлял поиск как в гугл мапс?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 22:01

ArseniySafin писал(а):Всем привет!
Кто-нибудь уже добавлял поиск как в гугл мапс?
http://developer.android.com/reference/ ... coder.html
для маршрута что то такое:
https://developers.google.com/maps/docu ... irections/
Изображение

ArseniySafin
Сообщения: 22
Зарегистрирован: 26 ноя 2013, 22:12

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение ArseniySafin » 06 фев 2014, 22:18

altwin писал(а): http://developer.android.com/reference/ ... coder.html
для маршрута что то такое:
https://developers.google.com/maps/docu ... irections/
Спасибо, я вот нашёл:
http://www.cyberforum.ru/android-dev/thread990243.html

Судя по всему, до ума этот процесс довести окажется значительно сложнее, и всё выйдет в достаточно большую структуру.
Ладно, буду дальше копаться, надеюсь, я ошибаюсь.

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 22:21

altwin писал(а):
naluvajko писал(а):
altwin писал(а):
naluvajko писал(а):fragment: запускаю
как?
Запускаю прогу на устройстве.
это я догадался, хотелось бы код увидеть, который за это отвечает.... ;)
Вот код (извиняюсь что так поздно)

Код: Выделить всё

// MainActivity.java

package ua.andriod.maps;

//import android.app.Activity;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
//import android.view.Menu;

public class MainActivity extends FragmentActivity {

	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		   
	}
	
	public void onClickTest(View view) {
	  }

	}

///////////////////////////////////////////////////////////////////////////

// activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
 		android:id="@+id/btnTest"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
 		android:onClick="onClickTest"
 		android:text="@string/test">
	</Button>

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

</LinearLayout>

////////////////////////////////////////////////////////////////////////////

//AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ua.andriod.maps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="10" />

   	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
	<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"></uses-permission>
    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
	
    <uses-feature
 		android:glEsVersion="0x00020000"
 		android:required="true">
	</uses-feature> 
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ua.andriod.maps.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <meta-data
 			android:name="ua.android.maps"
 			android:value="AIzaSyAe9fw8qvicbWdRfW7-40ipRmcS9gYPVZ4">
		</meta-data>
		<meta-data
 			android:name="com.google.android.gms.version"
			android:value="@integer/google_play_services_version">
		</meta-data>
        
    </application>

</manifest>

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 22:28

naluvajko писал(а):
altwin писал(а):
naluvajko писал(а):
altwin писал(а):
naluvajko писал(а):fragment: запускаю
как?
Запускаю прогу на устройстве.
это я догадался, хотелось бы код увидеть, который за это отвечает.... ;)
Вот код (извиняюсь что так поздно)

Код: Выделить всё

// MainActivity.java

package ua.andriod.maps;

//import android.app.Activity;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
//import android.view.Menu;

public class MainActivity extends FragmentActivity {

	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		   
	}
	
	public void onClickTest(View view) {
	  }

	}

///////////////////////////////////////////////////////////////////////////

// activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
 		android:id="@+id/btnTest"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
 		android:onClick="onClickTest"
 		android:text="@string/test">
	</Button>

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

</LinearLayout>

////////////////////////////////////////////////////////////////////////////

//AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ua.andriod.maps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="10" />

   	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
	<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"></uses-permission>
    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
	
    <uses-feature
 		android:glEsVersion="0x00020000"
 		android:required="true">
	</uses-feature> 
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ua.andriod.maps.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <meta-data
 			android:name="ua.android.maps"
 			android:value="AIzaSyAe9fw8qvicbWdRfW7-40ipRmcS9gYPVZ4">
		</meta-data>
		<meta-data
 			android:name="com.google.android.gms.version"
			android:value="@integer/google_play_services_version">
		</meta-data>
        
    </application>

</manifest>
тут когда пишите сообщение - есть теги

Код: Выделить всё

 и т.д., код лучше заключать в них, чтобы его можно было прочитать....
Вам нужно еще раз перечитать урок: http://startandroid.ru/ru/uroki/vse-uroki-spiskom/306-urok-139-google-maps-sozdanie-i-nastrojka-proekta-karta-kamera-sobytija.html 
обратите внимание на MainActivity.java в уроке, у вас этот клас не реализован вообще.
Изображение

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 23:04

altwin писал(а): тут когда пишите сообщение - есть теги code и т.д., код лучше заключать в них, чтобы его можно было прочитать....
Вам нужно еще раз перечитать урок: http://startandroid.ru/ru/uroki/vse-uro ... ytija.html
обратите внимание на MainActivity.java в уроке, у вас этот клас не реализован вообще.
Я специально выкидывал части кода чтоб локализировать ошибку и подозреваю что все дело в <fragment>...</fragment> (смотрите предыдущие сообщения).
Если я беру весь код с примера выкидывает ту же ошибку.
Вот код:

Код: Выделить всё

// MainActivity.java

package ua.andriod.maps;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;

public class MainActivity extends FragmentActivity {

	SupportMapFragment mapFragment;
	GoogleMap map;
    final String TAG = "myLogs";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mapFragment = (SupportMapFragment) getSupportFragmentManager()
		        .findFragmentById(R.id.map);
		    map = mapFragment.getMap();
		
		   if (map == null) {
		      finish();
		      return;
		    }
		    init();
	}
	
	private void init() {
    }
	
	public void onClickTest(View view) {
	    
	    map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
	  }
}

///////////////////////////////////////////////////////////////////////////

// activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
 		android:id="@+id/btnTest"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
 		android:onClick="onClickTest"
 		android:text="@string/test" >
 	</Button>
	
	<fragment
 		android:id="@+id/map"
 		android:name="com.google.android.gms.maps.SupportMapFragment"
 		android:layout_width="match_parent"
 		android:layout_height="match_parent" >
 	</fragment>

</LinearLayout>

////////////////////////////////////////////////////////////////////////////

//AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ua.andriod.maps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="10" />

   	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
	<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"></uses-permission>
    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
	
    <uses-feature
 		android:glEsVersion="0x00020000"
 		android:required="true">
	</uses-feature> 
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ua.andriod.maps.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <meta-data
 			android:name="ua.android.maps"
 			android:value="AIzaSyAe9fw8qvicbWdRfW7-40ipRmcS9gYPVZ4">
		</meta-data>
		<meta-data
 			android:name="com.google.android.gms.version"
			android:value="@integer/google_play_services_version">
		</meta-data>
        
    </application>

</manifest>

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 06 фев 2014, 23:27

явной ошибки не видно, поидее все должно работать, разве что добавьте декларацию xml в activity_mail.xml:
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
[/syntax]
других причин для ошибки лично я не вижу, нужно смотреть вывод LogCat.
Изображение

naluvajko
Сообщения: 6
Зарегистрирован: 06 фев 2014, 16:26

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение naluvajko » 06 фев 2014, 23:47

altwin писал(а):явной ошибки не видно, поидее все должно работать, разве что добавьте декларацию xml в activity_mail.xml:
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
[/syntax]
других причин для ошибки лично я не вижу, нужно смотреть вывод LogCat.
Не помогло (((((
Буду пробовать разбираться с LogCat. Спасибо за помощь.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение altwin » 07 фев 2014, 00:54

naluvajko писал(а):
altwin писал(а):явной ошибки не видно, поидее все должно работать, разве что добавьте декларацию xml в activity_mail.xml:
[syntax=xml]
<?xml version="1.0" encoding="utf-8"?>
[/syntax]
других причин для ошибки лично я не вижу, нужно смотреть вывод LogCat.
Не помогло (((((
Буду пробовать разбираться с LogCat. Спасибо за помощь.
да там нечего разбираться включите на телефоне режим usb отладки и просто держите подключенным через usb шнурок. Хотя дальше вам всеравно потребуется доступ к файловой системе и т.д. если не эмулятор то придется использовать root
Изображение

airobot
Сообщения: 3
Зарегистрирован: 28 янв 2014, 13:17

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение airobot » 23 фев 2014, 22:56

Здравствуйте.
Столкнулся с такой проблемой.
Сделал по примеру приложение показывающее точки на карте.
Когда телефон подключен, карты работают, никаких пробелем нет.

Когда нажимаю Export с делаю экспорт все проходит хорошо.
Скидываю приложение на телефон, устанавливаю, удаляя при этом старое перед установкой, Запускаю приложение работает. но карты не показывает.
Интернет включен, геолокация тоже.
Подскажите, как подписать приложение, чтобы гугл карты работали, когда подписываешь приложение ключом?

Ovocik
Сообщения: 1
Зарегистрирован: 24 фев 2014, 23:07

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Ovocik » 24 фев 2014, 23:10

Думаю стоит включить в этот урок то, что разработчик обязан включить в приложение текст лицензии. Если я конечно по невнимательности не пропустил.

пруф: https://developers.google.com/maps/docu ... quirements

"Attribution Requirements

If you use the Google Maps Android API in your application, you must include the Google Play Services attribution text as part of a "Legal Notices" section in your application. Including legal notices as an independent menu item, or as part of an "About" menu item, is recommended.

The attribution text is available by making a call to GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo."

Никита
Сообщения: 5
Зарегистрирован: 05 окт 2013, 18:16

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Никита » 27 мар 2014, 13:23

Приветствую! У меня вопрос. На эмуляторе карты запускаются, а на девайсе (lg google nexus 4) не показываются. Что делать, подскажите пожалуйста.

Ответить