varför syns inte kartan?

Diskussion i 'Frågor, support och diskussion' startad av blueWater, 22 jan 2011.

  1. blueWater

    blueWater Baby Droid Medlem

    Blev medlem:
    24 dec 2009
    Inlägg:
    29
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej!

    Jag har nu suttit ett tag med ett problem utan att hitta svaret.

    Vill lära mig att visa och använda kartan, och jag har följt tutorial på
    http://developer.android.com/resources/tutorials/views/hello-mapview.html.

    Det går att köra applikationen,och endast ett rutnät syns men ingen karta.

    Dock fungerar det att visa kartan om jag använder
    Kod:
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=Lund" ));//+ location)); 
            startActivity(i);
        
    Rätta mig om jag har fel. Så här har jag tänkt:

    1. Fungerar browsern? Ja, jag har testat med en annan applikation, och det fungerar.

    2. Är API Key rätt? Ja, det tror jag , eftersom jag ser kartan om jag använder koden med Intent ovanför.

    3. Har letat i LogCat och det enda felmeddelande jag har fått fram är
    ****** 01-22 07:44:11.325: ERROR/MapActivity(303): Couldn't get connection factory client *******
    Detta har jag googlat på och har inte lyckats lösa mitt problem. Dock har jag upptäckt att i eclipse helios finns inte preferences(jag hittar inte de). Det skall ligga under window-android-preferences.
    Ett annat förslag jag hittade på nätet var att använda file-export- och signera applikationen. Men problemet var kvar....

    4. Jag använder mac, och eclipse Helios.

    5. har testat på emulator, Api 7, 2.1, 2.2 och på experia x10.

    Är det någon som kan hjälpa mig, skulle jag vara mycket tacksam!
    Det som retar mig är att jag kan se kartan om jag använder Intent men inte då jag använder Mapview...Grrr
     
  2. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 sept 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    Om api-nyckeln är fel får du inte upp kartan, bara rutnät. Intentet startar väl en annan applikaiton (Maps?) som har sin egen api-nyckel.

    Tänk på att api-nyckeln beror på med vilken nyckel du singerat din applikation. api-nyckeln ska alltså vara olika om du singerar med din debug-nyckel eller din release-nyckel.
     
  3. VelcroMan

    VelcroMan Kid Droid Medlem

    Blev medlem:
    2 nov 2009
    Inlägg:
    83
    Mottagna gillanden:
    13

    MINA ENHETER

    Har appen tillstånd att komma åt internet? Kolla appens permissions.
     
  4. blueWater

    blueWater Baby Droid Medlem

    Blev medlem:
    24 dec 2009
    Inlägg:
    29
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag glömde klistra in manifest filen..

    "Har appen tillstånd att komma åt internet? Kolla appens permissions."

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="min.hellogooglemapsmedgoogleapi"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="com.google.android.maps" />
    <activity android:name=".HelloGoogleMapsMedGoogleApi"
    android:label="@string/app_name"
    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>
    <uses-sdk android:minSdkVersion="8" />

    </manifest>
     
  5. blueWater

    blueWater Baby Droid Medlem

    Blev medlem:
    24 dec 2009
    Inlägg:
    29
    Mottagna gillanden:
    0

    MINA ENHETER

    Tack för alla svar!

    ______________
    Till VelcroMan
    ______________

    Jag glömde klistra in manifest filen..

    "Har appen tillstånd att komma åt internet? Kolla appens permissions."
    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="min.hellogooglemapsmedgoogleapi"
          android:versionCode="1"
          android:versionName="1.0">
          <uses-permission android:name="android.permission.INTERNET" />
        <application android:icon="@drawable/icon" android:label="@string/app_name">
        <uses-library android:name="com.google.android.maps" />
            <activity android:name=".HelloGoogleMapsMedGoogleApi"
                      android:label="@string/app_name"
                      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>
        <uses-sdk android:minSdkVersion="8" />
      
    </manifest> 
    
    I layout.main.xml
    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <com.google.android.maps.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="här min API Key"
    
    />
    _________________
    Till woody
    ---------------------
    Kan du förklara lite mer om det du skrev:
    "
    Tänk på att api-nyckeln beror på med vilken nyckel du singerat din applikation. api-nyckeln ska alltså vara olika om du singerar med din debug-nyckel eller din release-nyckel."

    Innebär detta att om jag har råkat använda "release nyckel" så kanske kartan syns när den skall releasas?
    Skall titta närmare på dessa olika nyckel- det är nog det som är fel.
    Men,kan man tolka felet i LogCat ( "cannot find factory client")? som att nyckeln inte stämmer?

    Och, skall man undvika använda Mapview, när man ändå kan användas av Intent som har sin egen API Key? Finns det fördel med att använda MapView? Eller man kanske klarar sig på att använda Intent?

    Tack för att ni tar er tid att svara!
     
  6. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 sept 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    När du debuggar applikationen (i emulator eller på fysisk telefon) från eclispse använder eclipse en egengenererad debugnyckel till skillnad fårn när du relesar och använder den nyckel du själv genererat. Då map-api-nyckeln måste vara skapad för den nyckel applikationen är singerad med behöver du skapa en api-nyckel för din debug-nyckel för att se kartan då du kör applikationen i detta läge.

    se http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint

    Jag vet inte, men det är troligt.

    Om det enda du vill göra är att visa en position på kartan kan du ju överlåta det till en applikation som är bra på just det. Det är ju lite tanken med android och intents att applikationer ska kunna utnyttja delar av andra applikationer.

    Hoppas att jag inte bara rört till saker mer genom att svara i onyktert tillstånd....;)
     
  7. blueWater

    blueWater Baby Droid Medlem

    Blev medlem:
    24 dec 2009
    Inlägg:
    29
    Mottagna gillanden:
    0

    MINA ENHETER

    SOLVED

    Det som var fel, var att jag använde fel nyckel, dvs release-nyckel . Jag använda debug-nyckel, och problemet försvann.

    Tack för all hjälp!
    >>>>Till Woody<<<
    Hoppas att jag inte bara rört till saker mer genom att svara i onyktert tillstånd....
    Nej då.. Tack!