Проблемы при попытке использовать классы Android Mapview - PullRequest
0 голосов
/ 30 июня 2011

Я новичок в Android, так что терпите меня и извинения, если мой пост идиотский.В основном, я пытаюсь добавить mapview к XML, что вызывает несколько проблем, ошибка, которую я получаю:

06-30 12:29:04.760: ERROR/AndroidRuntime(320): java.lang.NoClassDefFoundError: package.android.mapclass

Из того, что я могу сказать, ошибка происходит в этом вызове:

Intent i = new Intent(oldclass.this, mapclass.class);

Сам класс карты выглядит так:

package package.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.maps.MapView;
import com.google.android.maps.MapActivity;
import android.util.Log;

public class mapclass extends MapActivity {
   public void onCreate(Bundle savedInstanceState)
   {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewmap);

   protected boolean isRouteDisplayed() {
        return false;
   }
}

Вот где будет интересно, если я поменяю

public class mapclass extends MapActivity {

и заменим его на

public class mapclass extends Activity {

Тогда он работает абсолютно корректно (хотя и без вызова вызова MapActivity).В манифесте есть ссылка на карты:

<manifest   xmlns:android="http://schemas.android.com/apk/res/android"
        package="package.android"
        android:versionCode="1"
        android:versionName="1.0">
<uses-sdk   android:minSdkVersion="7" />
<uses-permission android:name="android.permission.LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-library android:name="com.google.android.maps" />
<uses-library android:name="com.google.android.maps.MapView" />
<uses-library android:name="com.google.android.maps.MapActivity" />

<application    android:icon="@drawable/icon"
                android:label="@string/app_name">

Я предполагаю, что я делаю что-то ужасно неправильное в отношении активности в xml?Я пробовал возиться, но пока безрезультатно, у кого-нибудь есть идеи?

Спасибо,

1 Ответ

0 голосов
/ 30 июня 2011

Шаг # 1: Удалить второй и третий элементы <uses-library>.

Шаг # 2: Измените ваш пакет, чтобы он не включал package в качестве части имени, чтобы минимизировать шансы проблем с зарезервированными ключевыми словами.

Шаг № 3: Удалите строку <uses-permission android:name="android.permission.LOCATION"/>, поскольку такого разрешения нет.

Шаг № 4. Запустите приложение на устройстве или эмуляторе, на котором установлены Карты Google.

Ваша настоящая проблема - Шаг № 4 - первые три - просто немного почистить вещи. Кстати, я также рекомендую вам следовать соглашениям CamelCase для имен ваших классов.

...