2012-05-17 51 views
1

我在嘗試啓動新活動時收到java.lang.NoClassDefFoundError。下面是我的AndroidManifest.xml:Android java.lang.NoClassDefFoundError啓動新活動時

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

    <uses-sdk android:minSdkVersion="15" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

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

      <activity 
       android:name=".LoginActivity" 
       android:label="Login to your Account"> 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 
        <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".RegisterActivity" 
      android:label="Register New Account"> 
     </activity> 

     <activity 
      android:name=".GoogleMapsActivity" 
      android:label="Google Maps"> 
     </activity> 

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

    </application> 

</manifest> 

代碼GoogleMapsActivity.java

package com.practice.googlemaps; 

import android.os.Bundle; 

import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 

public class GoogleMapsActivity extends MapActivity { 

    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView)findViewById(R.id.mapView); 
    mapView.setBuiltInZoomControls(true); 
    } 

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

而下面是我使用啓動新的活動線路:

Intent i = new Intent(getApplicationContext(), GoogleMapsActivity.class); 
startActivity(i); 

我已經檢查過我的課程GoogleMapsActivity.java,該文件存在並且拼寫/措詞都匹配。

我懷疑這個錯誤可能是由我的AndroidManifest.xml引起的,但是我找不到這個問題。

難道有人請指點我正確的方向嗎?

+0

向我們展示GoogleMapsActivity的代碼。它是否在正確的包裝? – Falmarri

+0

@Falmarri,用GoogleMapsActivity.java的代碼更新。目前我只有一個軟件包來保持簡單。 GoogleMapsActivity.java的作品,因爲如果我只發起這個活動,那麼我沒有任何問題。 – czchlong

回答

3

請確保<uses-library android:name="com.google.android.maps"/>是正確的位置。

+0

我發佈了我的AndroidManifest.xml文件,我不確定,但那是正確的位置? – czchlong

+0

是的,但嘗試清理項目。項目選項卡 - >清潔 - >選擇您的項目並清理。有時候,當你自動選擇構建時,你的xml文件不能很好的編譯。 – Tugrul

1

你肯定會錯過添加一個jar文件,以便Noclassdeffound錯誤 將顯示。如果你有添加所有的jar文件,那麼這個錯誤來了,然後我給你一個最好的答案,肯定有效。只需在您的項目中創建libs文件夾,並將所有jar文件添加到libs文件夾中,您的問題就可以解決。

+0

我有第二堂課,需要一個罐子。我檢查了libs文件夾,發現這個jar沒有複製到libs文件夾。因此,每當我嘗試啓動第二個活動時,它都會給我NoClassDefFoundError。只是將該jar複製到libs文件夾中,問題就解決了。 –