3

Я часто задавал этот вопрос, но ни одно из предлагаемых решений, похоже, не работает для меня. Я получаюNoClassDefFoundError in FragmentMapActivity

E/AndroidRuntime(897): java.lang.NoClassDefFoundError: android.support.v4.app.FragmentMapActivity$4 

при попытке открыть новый FragmentMapActivity.

Код:

public class Maps extends FragmentMapActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.maps_simple); 

    //MapView for the lose :(
    Toast.makeText(this, R.string.map_warning, Toast.LENGTH_LONG).show(); 

    MapView mapView = (MapView)findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 
} 

@Override 
protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
} 
} 

R.layout.maps_simple содержит:

<?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="<key removed for security>" 
    /> 

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="osmstudios.mappingapp" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="13" /> 

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

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/Theme.MapApp" android:hardwareAccelerated="true"> 

    <uses-library android:name="com.google.android.maps" /> 

    <activity android:label="@string/app_name" android:name=".AppMainActivity"> 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:label="@string/app_name" android:name="com.keyes.youtube.OpenYouTubePlayerActivity"></activity> 
    <activity android:label="@string/app_name" android:name=".Maps"> 
     <intent-filter> 
        <action android:name="android.intent.action.VIEW" /> 
        <category android:name="osmstudios.mappingapp" /> 
       </intent-filter> 
    </activity> 

</application> 

</manifest> 

Вот внутренний код нажатия кнопки, которая открывает FragmentMapActivity намерение :

Intent intent = new Intent(ctx, Maps.class); 
startActivity(intent); 

Наконец, это то, что моя папка Библиотеки в инструменте Путь сборки Java выглядеть следующим образом: libraries

Я действительно бить головой о стену на этом. Любая помощь будет оценена по достоинству.

ответ

0

У меня была такая же проблема, и я решил ее, проверив путь сборки проекта. Там у меня было два карточных баночки. Я удалил один из них в библиотеках, теперь он работает нормально. Просто проверьте, что это может сработать.

3

Это немного поздно, но у меня была одна и та же проблема и, по крайней мере, разрешить «java.lang.NoClassDefFoundError:». В проекте property-> java Build path -> Библиотеки, я включил android-support-v4.jar из пути android sdk. Этот lib был доступен во время компиляции, но не во время выполнения. Вам нужно скопировать эту банку из пути sdk в папку приложений, так что эта библиотека статически добавляется в ваше приложение и может быть найдена во время выполнения. надеюсь это поможет. Это решение я нашел после многого поиска в StackOverFlow. Это ссылка. Trying to use DialogFragments via v4 compatability causes NoClassDefFoundErrors

+0

Это, кажется, не проблема, но я уже переписали приложение, так что я не могу проверить. Я ценю, что вы нашли время, чтобы опубликовать свои результаты. –

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