Autore Topic: couldn't get connection factory client  (Letto 1747 volte)

Offline Tunarock

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire S
  • Sistema operativo:
    Windows Vista
couldn't get connection factory client
« il: 29 Marzo 2012, 15:09:55 CEST »
0
Buongiorno a tutti,

il mio è un problema noto che ho constatato nel web essere facilmente riscontrabile; non partite in quarta con le solite risposte vi prego, perchè ho già letto centinaia di post con risposte praticamente fotocopiate tra loro.

La mia applicazione è una classica activity che estende MapActivity che fa le seguente cose:

Codice (Java): [Seleziona]
protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                setContentView(R.layout.map);
                coord = GetCoordinates();
                geoPointsCollection = getGeoPoints();
               
                setMap();
                Button routeButton = (Button)findViewById(R.id.doRoute);
        routeButton.setOnClickListener(new OnClickListener(){      
            public void onClick(View v) {      
                if(! routeIsDisplayed){
                        routeIsDisplayed = true;
                        overlayRoute();                                
                } else {
                        if(segRoute != null) segRoute.setRouteView(false);
                        segRoute = null; // To prevent multiple route instances if key toggled rapidly (see line 235)
                        routeIsDisplayed = false;
                        mapView.postInvalidate();
                }
            }
        });

tutto ciò che c'è prima di setMap() serve per ottenere una lista di coordinate sotto forma di GeoPoints.

setMap() è il seguente metodo:

Codice (Java): [Seleziona]
mapView = (MapView) findViewById(R.id.map);
                mapView.setClickable(true);
                int maxZoom = mapView.getMaxZoomLevel();
        int initZoom = maxZoom-2;
        mapView.getController().setZoom(initZoom);
               
        start = new GeoPoint(geoPointsCollection.get(0).get(0).getLatitudeE6(), geoPointsCollection.get(0).get(0).getLongitudeE6());
               
                mapView.getController().animateTo(start);

overlayRoute serve per caricare gli overlay che sono definiti nella classe PathSegmentOverlay

Codice (Java): [Seleziona]
public void overlayRoute() {
       
               
                if(segRoute != null) return;  // To prevent multiple route instances if key toggled rapidly (see also line 116)
        // Set up the overlay controller
        segRoute = new PathSegmentOverlay(geoPointsCollection);
                routeOverlays = mapView.getOverlays();
        routeOverlays.add(segRoute);
       
        // Added symbols will be displayed when map is redrawn so force redraw now
        mapView.postInvalidate();
    }


 non sembrerebbe esserci nessun problema di codice, infatti quando eseguo il debug della mia applicazione, non riscontro problemi fino alla riga successiva della chiamata al metodo setMap();

ecco quindi che il Log mostra l'errore couldn't get connection factory client quindi il risultato è che non chiama neanche il metodo overlayRoute() e quindi non mostra il risultato

è molto strano invece che eseguendo il Run io possa vedere la mappa con tutte le sue proprietà (centrata nel punto scelto, zoommabile, possibilità di pan) quindi non può essere un problema della APIkey!

mi confermate quello che sto dicendo o ho perso qualcosa per strada?? qual è l'errore???

ah ho provato a installare l'app sul mio desire s, ma nulla, non funziona, non è problema dell'emulatore
« Ultima modifica: 29 Marzo 2012, 15:22:09 CEST da Tunarock »
"Quando fai le cose per bene, nessuno sospetterà che tu abbia fatto realmente qualcosa"

Offline Tunarock

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire S
  • Sistema operativo:
    Windows Vista
Re:couldn't get connection factory client
« Risposta #1 il: 31 Marzo 2012, 12:58:03 CEST »
0
come non detto... la risposta era più che ovvia, la colpa era solo del codice, mi scuso per l'inutile post
"Quando fai le cose per bene, nessuno sospetterà che tu abbia fatto realmente qualcosa"

Offline leencoo

  • Nuovo arrivato
  • *
  • Post: 16
  • Înjunghia dvs. zâmbet demonice pentru creierul me
  • Respect: 0
    • Google+
    • leencoo
    • Mostra profilo
  • Dispositivo Android:
    Eee Pad Transformer Prime TF201
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:couldn't get connection factory client
« Risposta #2 il: 31 Marzo 2012, 13:22:18 CEST »
0
Perdonami tunarock potresti spiegarmi dove hai trovato l'errore... lol.. sono curioso ma se hai gia' a risposta mi eviti di cercarlo. ;-)
+----------------------------------------------------------+
| GnuPG/PGP Key-Id: 0x131E883F                      |
| ()  ascii ribbon campaign - against html e-mail |
| /\  against proprietary attachments                 |

Offline Tunarock

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire S
  • Sistema operativo:
    Windows Vista
Re:couldn't get connection factory client
« Risposta #3 il: 31 Marzo 2012, 13:28:14 CEST »
+1
l'errore non puoi vederlo perchè è nella parte del mio codice che non ho postato, ma non era un errore vero e proprio, più un malfunzionamento!

in sostanza il logcat mi segnalava "couldn't get connection factory client" ma l'applicazione gira bene lo stesso (col codice che ho corretto), in quanto la mia apiKey è corretta, così come il manifest. tutto risolto insomma

però se mi spieghi il tuo problema ti posso aiutare, oppure crea un nuovo topic ;)
"Quando fai le cose per bene, nessuno sospetterà che tu abbia fatto realmente qualcosa"

Offline leencoo

  • Nuovo arrivato
  • *
  • Post: 16
  • Înjunghia dvs. zâmbet demonice pentru creierul me
  • Respect: 0
    • Google+
    • leencoo
    • Mostra profilo
  • Dispositivo Android:
    Eee Pad Transformer Prime TF201
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:couldn't get connection factory client
« Risposta #4 il: 31 Marzo 2012, 13:31:01 CEST »
0
no no voevo solo capire se c'era un problema... tutto qui grazie tante ;-) a presto
+----------------------------------------------------------+
| GnuPG/PGP Key-Id: 0x131E883F                      |
| ()  ascii ribbon campaign - against html e-mail |
| /\  against proprietary attachments                 |

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:couldn't get connection factory client
« Risposta #5 il: 27 Luglio 2012, 16:42:48 CEST »
0
Io invece riprendo la discussione....anche a me il LogCat da quel messaggio ogni volta che carico una mappa, nonostante l'app sul mio cell funziona correttamente. Ma è normale sta scritta? Ho letto molto in giro ma non sono stato in grado.

Offline Jordywild

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Mac OS X 10.6.8
Re:couldn't get connection factory client
« Risposta #6 il: 22 Agosto 2012, 01:11:58 CEST »
0
Io invece riprendo la discussione....anche a me il LogCat da quel messaggio ogni volta che carico una mappa, nonostante l'app sul mio cell funziona correttamente. Ma è normale sta scritta? Ho letto molto in giro ma non sono stato in grado.

Anche a me interessa questo argomento.
A me compare sempre sia con l'emulatore sia installare su 2 cellulari htc (desire e desire hd).

Vi ringrazio anticipatamente.

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:couldn't get connection factory client
« Risposta #7 il: 22 Agosto 2012, 08:32:34 CEST »
0
Io alla fine l'ho lasciato così....l'applicazione funziona.

Offline keisuke85

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Re:couldn't get connection factory client
« Risposta #8 il: 23 Ottobre 2012, 01:36:46 CEST »
0
Ciao,
sto provando a realizzare un'applicazioncina che utilizza la mappa, ho seguito il tutorial fatto da google.
Alla fine dovrei trovarmi la mia bella mappa e un androidino cliccabile che mi segna un punto.
La mappa la visualizzo, ma l'androidino no...

Ecco il codice:
MainActivity.java
Codice (Java): [Seleziona]
package com.mappadiprova;

import java.util.List;

import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class MainActivity extends MapActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
       
        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
        ItemizeOverlay itemizedoverlay = new ItemizeOverlay(drawable, this);
       
        GeoPoint point = new GeoPoint(19240000, -99120000);
        OverlayItem overlayitem= new OverlayItem(point, "Ciao :D", "Pare sia in Messico!");
       
        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
   
    @Override
    protected boolean isRouteDisplayed(){
        return false;
    }
}

activity_main.xml
Codice (XML): [Seleziona]
<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" >
<com.google.android.maps.MapView
   android:id="@+id/mapview"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:clickable="true"
   android:enabled="true"
   android:apiKey="qui c'è il mio api key"
/>

</LinearLayout>

ItemizeOverlay.java
Codice (Java): [Seleziona]
package com.mappadiprova;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;


public class ItemizeOverlay extends ItemizedOverlay {
        private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
        private Context mContext;
       
       
        public ItemizeOverlay(Drawable defaultMarker){
                super(boundCenterBottom(defaultMarker));
        }
       
        public void addOverlay(OverlayItem overlay){
                mOverlays.add(overlay);
                populate();
        }
       
        @Override
        protected OverlayItem createItem(int i){
                return mOverlays.get(i);
        }
       
        public ItemizeOverlay(Drawable defaultMarker, Context context){
                super(boundCenterBottom(defaultMarker));
                mContext = context;
        }
       
        @Override
        protected boolean onTap(int index){
                OverlayItem item = mOverlays.get(index);
                AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
                dialog.setTitle(item.getTitle());
                dialog.setMessage(item.getSnippet());
                dialog.show();
                return true;
        }

        @Override
        public int size() {
                // TODO Auto-generated method stub
                return 0;
        }

}

e l'AndroidManifest.xml
Codice (XML): [Seleziona]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.mappadiprova"
   android:versionCode="1"
   android:versionName="1.0" >

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

    <uses-permission android:name="android.permission.INTERNET" />

   
    <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       
        <uses-library android:name="com.google.android.maps"/>
       
        <activity
           android:name=".MainActivity"
           android:label="@string/title_activity_main"
           android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
     
    </application>
   


</manifest>


Per finire linko il tutorial che ho seguito: https://developers.google.com/maps/documentation/android/hello-mapview

Qualcuno mi sa dire cosa ho sbagliato?

Grazie mille :)

Offline Jordywild

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Mac OS X 10.6.8
R: couldn't get connection factory client
« Risposta #9 il: 23 Ottobre 2012, 07:56:22 CEST »
0
Devi generare la chiave associata alla tua utenza x usare la mappa che dev'essere inserita nel main.xml altrimenti la mappa non si visualizza.

Nel forum c'è la guida in merito ;-)

Inviato dal mio HTC Desire con Tapatalk 2

Offline keisuke85

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Re:couldn't get connection factory client
« Risposta #10 il: 23 Ottobre 2012, 09:44:37 CEST »
0
Nell'activity_main.xml dove c'è la riga

android:apiKey="qui c'è il mio api key"

ho messo il mio apikey ottenuto tramite il comando
Codice: [Seleziona]
keytool -v -list -alias ecc ecc
che mi ha restituito l'MD5 che poi ho usato per avere l'api key :)