AChartEngine 0.6.0 코드를 따와서 살짝 변경후 실행시켜봤는데요
어플에서 해당 차트를 그려주는 엑티비티로 인텐트 연결을 시켜주면 다음과같이 에러가뜨면서
프로그램이 팅깁니다..
해결해주시면 감사하겠습니다
소스 첨부합니다.
06-06 23:19:53.470: E/AndroidRuntime(4934): FATAL EXCEPTION: main
06-06 23:19:53.470: E/AndroidRuntime(4934): java.lang.NoClassDefFoundError: org.achartengine.model.XYMultipleSeriesDataset
06-06 23:19:53.470: E/AndroidRuntime(4934): at net.choisun.OilChart.<init>(OilChart.java:20)
06-06 23:19:53.470: E/AndroidRuntime(4934): at java.lang.Class.newInstanceImpl(Native Method)
06-06 23:19:53.470: E/AndroidRuntime(4934): at java.lang.Class.newInstance(Class.java:1301)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.Instrumentation.newActivity(Instrumentation.java:1022)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1733)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.ActivityThread.access$500(ActivityThread.java:122)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.os.Looper.loop(Looper.java:132)
06-06 23:19:53.470: E/AndroidRuntime(4934): at android.app.ActivityThread.main(ActivityThread.java:4126)
06-06 23:19:53.470: E/AndroidRuntime(4934): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 23:19:53.470: E/AndroidRuntime(4934): at java.lang.reflect.Method.invoke(Method.java:491)
06-06 23:19:53.470: E/AndroidRuntime(4934): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
06-06 23:19:53.470: E/AndroidRuntime(4934): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
06-06 23:19:53.470: E/AndroidRuntime(4934): at dalvik.system.NativeStart.main(Native Method)
소스
package net.choisun;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
public class OilChart extends Activity {
public static final String TYPE = "type";
private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
private XYSeries mCurrentSeries;
private XYSeriesRenderer mCurrentRenderer;
private String mDateFormat;
private Button mNewSeries;
private GraphicalView mChartView;
@Override
protected void onRestoreInstanceState(Bundle savedState) {
super.onRestoreInstanceState(savedState);
mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
mCurrentSeries = (XYSeries) savedState.getSerializable("current_series");
mCurrentRenderer = (XYSeriesRenderer) savedState.getSerializable("current_renderer");
mDateFormat = savedState.getString("date_format");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("dataset", mDataset);
outState.putSerializable("renderer", mRenderer);
outState.putSerializable("current_series", mCurrentSeries);
outState.putSerializable("current_renderer", mCurrentRenderer);
outState.putString("date_format", mDateFormat);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.oil);
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setMargins(new int[] {20, 30, 15, 0});
mNewSeries = (Button) findViewById(R.id.new_series);
mNewSeries.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String seriesTitle = "Series " + (mDataset.getSeriesCount() + 1);
XYSeries series = new XYSeries(seriesTitle);
mDataset.addSeries(series);
mCurrentSeries = series;
XYSeriesRenderer renderer = new XYSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
mCurrentRenderer = renderer;
setSeriesEnabled(true);
}
});
}
@Override
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
boolean enabled = mDataset.getSeriesCount() > 0;
setSeriesEnabled(enabled);
} else {
mChartView.repaint();
}
}
private void setSeriesEnabled(boolean enabled) {
}
}