2010-02-06 4 views
0

J'utilise IntelliJ IDEA 9 (9.0.1) pour créer une application de carte simple (ou au moins essayer de). J'utilise Android 2.0 avec Google API 2.0.Android 2.0 SDK carte ne montre pas

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".MyActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name=".disaster"/> 
     <activity android:name=".map" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar"/> 
     <uses-library android:name="com.google.android.maps" /> 
    </application> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
</manifest> 

Classe:

public class map extends MapActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.map); 

     Button saveMe = (Button) findViewById(R.id.backBtn); 
     saveMe.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(view.getContext(), MyActivity.class); 
       startActivityForResult(myIntent, 0); 
      } 
     }); 

    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; //To change body of implemented methods use File | Settings | File Templates. 
    } 
} 

Vue:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/wall" 
    > 
     <View android:id="@+id/mv" 
     class="com.google.android.maps.MapView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:enabled="true" 
     android:apiKey="08zxVQUd22SOeAuv8AEMS5hBAeOdll4OzDrNYpQ"/> 

     <Button android:id="@+id/backBtn" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:text="@string/backBtn"/> 

</LinearLayout> 

Ce me donne juste un écran vide.

Qu'est-ce que je fais mal?

Modifier: clarifié mon OP.

Répondre

0

Assurez-vous que vous disposez des autorisations d'aller à l'Internet et d'accéder à des emplacements dans votre AndroidManifest.xml:

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

Edit:

Ok il semble que le cas est sensible si l'évolution de:

<View android:id="@+id/mv" 

à

<view android:id="@+id/mv" 

doit afficher votre carte.

+0

Bonjour, merci d'avoir réfléchi. J'ai déjà configuré android.permission.INTERNET, et maintenant même afficher la carte ne fonctionne pas, sans parler de l'emplacement GPS du mobile. Donc, je suis d'abord en train d'essayer de faire fonctionner le premier. – user211992

+0

Pouvez-vous mettre à jour votre OP avec votre activité et peut-être la mise en page complète de votre carte XML? De plus, vous devez définir un identifiant dans votre mapview (l'exemple que vous avez donné ne contient pas d'identifiant et vous devrez le référencer depuis votre activité) – ccheneson

+0

J'ai mis à jour mon post de départ, J'espère que c'est plus clair maintenant. La carte est une vue que j'appelle depuis le menu de l'application.(enfin j'appelle la classe de map qui commence la vue) – user211992

1

Vous devez inclure une clé de débogage API Maps pour afficher le contenu de la carte. http://code.google.com/android/add-ons/google-apis/maps-overview.html

+0

J'utilise le deuxième code que j'ai posté et j'ai rempli une clé. Je viens de le remplacer par myKey ici pour être du bon côté. J'aurais probablement dû le mentionner. – user211992

+0

Je n'ai pas signé l'application moi-même, mais selon http://developer.android.com/intl/zh-TW/guide/developing/other-ide.html#DebugMode qui devrait arriver automatiquement. Existe-t-il un moyen de vérifier si cela s'est réellement passé? – user211992

+0

'jarsigner -verify -verbose mon_application.apk' vous dira si votre application est signée – emmby

0

D'accord, si IDEAJ que cela dépend de ce plugin Android si la signature de clé de débogage arrive automatically..check plug-in docs avec votre fichier de construction que vous pourriez avoir à ajouter un débogage signe clé cible

0

Probablement quand vous exportez votre apk assurez-vous de l'exporter avec la même clé API, sinon vous n'aurez que des lignes de quadrillage pour la carte. Le mot de passe pour le fichier debug.keystore est android puis sélectionnez alias et export. C'est quand vous avez besoin de l'exporter pour le téléphone réel!

Questions connexes