2010-02-06 3 views
0

Я использую IntelliJ IDEA 9 (9.0.1), чтобы создать простую картографическую программу (или, по крайней мере, пытаюсь). Я использую Android 2.0 с API API Google 2.0.Карта Android SDK не отображается

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> 

Класс:

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. 
    } 
} 

Вид:

<?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> 

Это просто дает мне пустой экран.

Что я делаю неправильно?

Редактировать: уточнил мой ОП.

ответ

0

Убедитесь, что права доступа, чтобы перейти к Интернету и доступа к ячейкам в вашем AndroidManifest.xml:

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

Edit:

Хорошо, кажется, так чувствителен, так меняется от:

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

в

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

должен отображать вашу карту.

+0

Здравствуйте, спасибо за размышление. Я уже установил android.permission.INTERNET, и сейчас даже просто отображение карты не работает, не говоря уже об использовании местоположения GPS для мобильных устройств. Поэтому я сначала пытаюсь заставить бывшего работать. – user211992

+0

Можете ли вы обновить свой OP своей деятельностью и, возможно, полный макет вашей карты xml? Также вам нужно установить идентификатор в вашем mapview (пример com.google.android.maps.MapView, который вы указали, не имеет его, и вам нужно будет ссылаться на него из вашей активности) – ccheneson

+0

Я обновил свой стартовый пост, надеюсь, теперь это понятно. Карта - это вид, который я вызываю из своего меню.(ну, я вызываю класс карты, который запускает представление) – user211992

1

Вы должны включить ключ отладки API Карт, чтобы отобразить отображаемый контент. http://code.google.com/android/add-ons/google-apis/maps-overview.html

+0

Я использую второй код, который я разместил, и я заполнил ключ. Я только что заменил его myKey здесь, чтобы быть в безопасности. Я, наверное, должен был упомянуть об этом. – user211992

+0

Я сам не подписал приложение, но, согласно http://developer.android.com/intl/zh-TW/guide/developing/other-ide.html#DebugMode, это должно произойти автоматически. Есть ли способ проверить, действительно ли это произошло? – user211992

+0

'jarsigner -verify -verbose my_application.apk' скажет вам, подписано ли ваше приложение. – emmby

0

Хорошо, если в IDEAJ, чем это зависит от того, что Android плагин происходит ли подписание отладочный ключ automatically..check плагин документы вместе с файлом сборки, как вы, возможно, придется добавить отладочный ключ назначения подписать

0

Вероятно, когда вы экспортируете свой apk, убедитесь, что вы экспортируете его с одним и тем же ключом api, иначе у вас будут только линии сетки для карты. Пароль для debug.keystore - это андроид, затем выберите псевдоним и экспортируйте. Это когда вам нужно экспортировать его для реального телефона!

Смежные вопросы