Tenho uma aplicação chamada SASMobile e estou com problemas para fazer funcionar o street view, conforme o título da pergunta. No eclipse, em configuração do projeto android, estou usando Google APis, Plataform 5.1.1 e API Level 22.
Activity: ExibeMapaStreetView.java
package br.com.lemarq.sas;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import com.google.android.gms.maps.StreetViewPanorama;
import com.google.android.gms.maps.StreetViewPanoramaFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.maps.GeoPoint;
import android.content.Context;
import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class ExibeMapaStreetView extends FragmentActivity {
private LatLng latLng;
private String endereco = "";
private Double la = 0.0;
private Double lo = 0.0;
public static Context ctx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapastreetview);
// nome do Licenciado do Sistema
try {
Licenciado licenciado = new Licenciado(ExibeMapaStreetView.this);
this.setTitle(licenciado.getLicenciado());
} catch (Exception e) {
}
Intent intent = getIntent();
try {endereco = (String) intent.getSerializableExtra("enderecoCompleto");} catch (Exception e) {endereco = null;}
try {la = (Double) intent.getSerializableExtra("latitude");} catch (Exception e) {la = 0.0;}
try {lo = (Double) intent.getSerializableExtra("longitude");} catch (Exception e) {lo = 0.0;}
if (la == 0.00 && lo == 0.00) {
GeoPoint geoPoint = localizaEnderecoMaps(ExibeMapaStreetView.this,endereco);
la = geoPoint.getLatitudeE6() / 1E6;
lo = geoPoint.getLongitudeE6()/ 1E6;
}
if (la == 0.0 || lo == 0.0) {
latLng = new LatLng(-23.561706,-46.655981);
} else {
latLng = new LatLng(la, lo);
}
StreetViewPanoramaFragment streetViewFragment = (StreetViewPanoramaFragment) getFragmentManager().findFragmentById(R.id.mapst);
StreetViewPanorama streetViewPanorama = streetViewFragment.getStreetViewPanorama();
streetViewPanorama.setPosition(latLng);
}
@Override
protected void onResume() {
super.onResume();
//configuraPosicao(map, latLng, tipoMapa);
}
public static GeoPoint localizaEnderecoMaps(Context ctx, String endereco) {
GeoPoint p = null;
Geocoder geoCoder = new Geocoder(ctx, Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocationName(endereco, 1);
if (addresses.size() > 0) {
p = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
return p;
}
} catch (IOException e) {
e.printStackTrace();
}
return p;
}
}
XML: mapastreetview.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
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:orientation="vertical"
tools:context=".MainActivity" >
<fragment
android:id="@+id/mapst"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.StreetViewPanoramaFragment"/>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="br.com.lemarq.sas"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="22" />
<permission
android:name="br.com.lemarq.sas.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="br.com.lemarq.sas.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:testOnly="false">
<uses-library android:name="com.google.android.maps" />
<activity
android:name="br.com.lemarq.sas.Splash"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="br.com.lemarq.sas.Login" />
<activity android:name="br.com.lemarq.sas.Principal" />
<activity android:name="br.com.lemarq.sas.ExibeMapa" />
<activity android:name="br.com.lemarq.sas.ExibeMapaStreetView" />
<activity android:name="br.com.lemarq.sas.ClienteLista" />
<activity android:name="br.com.lemarq.sas.ClienteCad" />
<activity android:name="br.com.lemarq.sas.ProdutoLista" />
<activity android:name="br.com.lemarq.sas.Consultas" />
<activity android:name="br.com.lemarq.sas.VendedorLista" />
<activity android:name="br.com.lemarq.sas.CondpagLista" />
<activity android:name="br.com.lemarq.sas.ModalidadeLista" />
<activity android:name="br.com.lemarq.sas.PedLista" />
<activity android:name="br.com.lemarq.sas.PedCadastro" />
<activity android:name="br.com.lemarq.sas.PedItens" />
<activity android:name="br.com.lemarq.sas.PedItensCad" />
<activity android:name="br.com.lemarq.sas.PedEncerra" />
<activity android:name="br.com.lemarq.sas.PedCancela" android:label="Confirma o Cancelamento ?" android:theme="@android:style/Theme.Dialog"/>
<activity android:name="br.com.lemarq.sas.Sincronizar" />
<activity android:name="br.com.lemarq.sas.SyncCliente" />
<activity android:name="br.com.lemarq.sas.SyncCondpag" />
<activity android:name="br.com.lemarq.sas.SyncModalidade" />
<activity android:name="br.com.lemarq.sas.SyncPed" />
<activity android:name="br.com.lemarq.sas.SyncPedItem" />
<activity android:name="br.com.lemarq.sas.SyncProduto" />
<activity android:name="br.com.lemarq.sas.SyncVendedor" />
<activity android:name="br.com.lemarq.sas.PesquisaCliente" />
<activity android:name="br.com.lemarq.sas.EmpresaCad" />
<activity android:name="br.com.lemarq.sas.WebService" />
<activity android:name="br.com.lemarq.sas.TelaSmad" android:label="Digite a Senha" android:theme="@android:style/Theme.Dialog" />
<activity android:name="br.com.lemarq.sas.Licenciado" />
<activity android:name="br.com.lemarq.sas.EnviandoSMS" android:label="Digite a Mensagem" android:theme="@android:style/Theme.Dialog" />
<activity android:name="br.com.lemarq.sas.AvisoSync" android:label="Confirma a Transmissão ?" android:theme="@android:style/Theme.Dialog"/>
<activity android:name="br.com.lemarq.sas.UltimasVendasCli" />
<activity android:name="br.com.lemarq.sas.UltimasVendasVend" />
<activity android:name="br.com.lemarq.sas.TitulosAberto" />
<activity android:name="br.com.lemarq.sas.LiberaPedido" android:label="Informe o Código" android:theme="@android:style/Theme.Dialog" />
<!-- Goolge API Key -->
<!-- chave antiga, mudada em 15/06/2016 android:value="AIzaSyCtNbwC9o7EUSGZ5cv-MWE_hZTXkRVprCM" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyD9kmqAfWUHX_WuIu9_YHi-RsfK4TsNR9Q"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
Log.txt
06-23 11:17:24.435: D/ViewRootImpl(15624): ViewPostImeInputStage ACTION_DOWN
06-23 11:17:24.625: I/Timeline(15624): Timeline: Activity_launch_request id:br.com.lemarq.sas time:7389625
06-23 11:17:24.625: D/InputMethodManager(15624): windowDismissed mLockisused = false
06-23 11:17:24.655: E/ViewRootImpl(15624): sendUserActionEvent() mView == null
06-23 11:17:24.655: W/ResourcesManager(15624): getTopLevelResources: /data/app/br.com.lemarq.sas-1/base.apk / 1.0 running in br.com.lemarq.sas rsrc of package null
06-23 11:17:24.665: D/PhoneWindow(15624): FMB installDecor mIsFloating : false
06-23 11:17:24.665: D/PhoneWindow(15624): FMB installDecor flags : 8454400
06-23 11:17:24.665: D/AndroidRuntime(15624): Shutting down VM
06-23 11:17:24.675: E/AndroidRuntime(15624): FATAL EXCEPTION: main
06-23 11:17:24.675: E/AndroidRuntime(15624): Process: br.com.lemarq.sas, PID: 15624
06-23 11:17:24.675: E/AndroidRuntime(15624): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.lemarq.sas/br.com.lemarq.sas.ExibeMapaStreetView}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3150)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3260)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.access$1000(ActivityThread.java:218)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.os.Handler.dispatchMessage(Handler.java:102)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.os.Looper.loop(Looper.java:145)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.main(ActivityThread.java:6934)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.reflect.Method.invoke(Native Method)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.reflect.Method.invoke(Method.java:372)
06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:450)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.setContentView(Activity.java:2400)
06-23 11:17:24.675: E/AndroidRuntime(15624): at br.com.lemarq.sas.ExibeMapaStreetView.onCreate(ExibeMapaStreetView.java:33)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.performCreate(Activity.java:6609)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3103)
06-23 11:17:24.675: E/AndroidRuntime(15624): … 10 more
06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.StreetViewPanoramaFragment: make sure class name exists, is public, and has an empty constructor that is public
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:632)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:596)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2126)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.onCreateView(Activity.java:5850)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740)
06-23 11:17:24.675: E/AndroidRuntime(15624): … 20 more
06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.google.android.gms.maps.StreetViewPanoramaFragment” on path: DexPathList[[zip file “/system/framework/com.google.android.maps.jar”, zip file “/data/app/br.com.lemarq.sas-1/base.apk”],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
06-23 11:17:24.675: E/AndroidRuntime(15624): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:618)
06-23 11:17:24.675: E/AndroidRuntime(15624): … 24 more
06-23 11:17:24.675: E/AndroidRuntime(15624): Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.maps.StreetViewPanoramaFragment
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.Class.classForName(Native Method)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
06-23 11:17:24.675: E/AndroidRuntime(15624): … 26 more
06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available