Android我得到了Java.lang.NoClassDefFoundError

时间:2012-05-08 13:31:07

标签: java android exception

这是我得到的错误:

05-08 12:50:56.976: E/AndroidRuntime(1018): java.lang.NoClassDefFoundError:
nl.h.energy.android.userinterface.FragmentEnergyUsage

我使用了断点,我已经确定错误在这一行

1   bar.addTab(bar.newTab()
2     .setText("energy usage")
3     .setTabListener( 
4     new nl.h.energy.android.helper.TabListener
5      <nl.h.energy.android.userinterface.FragmentEnergyUsage>
6       (this,"energyUsage",  
7        nl.h.energy.android.userinterface.FragmentEnergyUsage.class)));

第6/7行发生错误我希望我提供足够的信息。 这些classe是我自己编写的类,所以不必导入这些类,或Android中缺少这些类

TabListener如下所示:http://developer.android.com/reference/android/app/ActionBar.html#newTab()

并且FragementEnergyUsage类如下所示:

package nl.h.energy.android..userinterface;

import nl.h.energy.userinterface.R;
import android.os.Bundle;
import android.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


public class FragmentEnergyUsage extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e("Test", "hello");
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.energy_usage, container, false);
        return view;
    }

    public void setText(String item) {
        TextView view = (TextView) getView().findViewById(R.id.detailsText);
        view.setText(item);
    }
}

2 个答案:

答案 0 :(得分:1)

请参阅此answer

还要检查您是否在清单文件中注册了所有活动类?

答案 1 :(得分:0)

我得到了

 java.lang.NoClassDefFoundError: com.android.example.SupportFragment
    at com.android.example.SupportFragmentActivity.onCreate()

SupportFragment extends SherlockFragment implements PopupMenu.OnMenuItemClickListener
...
    @Override
    public boolean onMenuItemClick(android.view.MenuItem item) {
        return onOptionsItemSelected(item);
    }

当尝试使api 17应用程序与api 8兼容时,唯一的指示是上面的logcat错误,因此如果出现此错误,请检查是否支持所有导入的类。