В настоящее время я работаю над Android-приложением, которое должно отображать карту с местоположением на ней с загрузкой помеченных фотографий в указанном месте. В течение последних полутора дней я боролся за то, чтобы работать с API Google, и теперь, когда ошибки для них (вроде бы) исчезли после импорта проекта API google play в Eclipse (согласно ссылке google), я теперь получаю ClassDefNotFoundException на моих кнопках OnClick. Это произошло не 10 минут назад, прежде чем я обратился к проекту API.ClassDefNotFoundException - но он работал нормально вплоть до 10 минут назад
Мне НЕОБХОДИМО решить эту проблему сегодня, поэтому любая помощь, которая может быть предоставлена, действительно будет оценена по достоинству.
Вот скриншот экрана отладки (и, как вы видите, класс, который отсутствует, поставляется рядом с ним).
Это происходит только при использовании этой одной кнопки, все остальные кнопки отлично работает.
GMapActivity.class
package com.pragsys.android.gps;
import com.google.android.gms.maps.SupportMapFragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class GMapActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gmap);
SupportMapFragment frag = new SupportMapFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.gmap, menu);
return true;
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pragsys.android.gps"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<permission
android:name="com.pragsys.android.gps.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.pragsys.android.gps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyByBoq02A_DiWygIHdmidfVWVWrHWslbX4"/>
<activity
android:name="com.pragsys.android.gps.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TakePhotoActivity"
android:label="@string/title_activity_take_photo" >
</activity>
<activity
android:name=".PhotoOverviewActivity"
android:label="@string/title_activity_photo_overview" >
</activity>
<activity
android:name=".PhotoGalleryActivity"
android:label="@string/title_activity_photo_gallery" >
</activity>
<activity
android:name=".PhotoUploadedActivity"
android:label="@string/title_activity_photo_uploaded" >
</activity>
<activity
android:name=".AboutActivity"
android:label="@string/title_activity_about" >
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="-snip-" />
<activity
android:name=".GMapActivity"
android:label="@string/title_activity_gmap" >
</activity>
</application>
</manifest>
layout.xml
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
Вы ссылаетесь на библиотеку сервисов google play? – Raghunandan
Обычно NoClassDefFoundError означает проблему с тем, как ваш проект настроен в Eclipse, а не в вашем коде. Я бы дважды проверял, как настроены ваши библиотеки, и попробуйте перезапустить eclipse и/или обновить проект (что вы можете сделать, выделив в проводнике проекта и нажав f5) –
logcat поможет – mihail