Frage an android, achartengine – Die Anwendung AChartengine wurde unerwartet beendet. Bitte versuche es erneut

10

Ich habe gerade versucht, die achartengine-Demo zu verwenden, aber jedes Mal, wenn ich auf etwas klicke, um das Diagramm anzuzeigen, wird die Fehlermeldung "Die Anwendung AChartengine wurde unerwartet beendet. Bitte versuchen Sie es erneut" angezeigt. Jemand weiß mir zu sagen, wie ich es machen kann? Ich habe die Anweisungen auf dieser Seite befolgthttp://www.achartengine.org/content/goodies.html und ich benutze einen Emulator-Standard mit API-Level 7. Ich habe diese Fehler:

<code>    04-15 09:08:43.285: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.AverageTemperatureChart.execute
    04-15 09:08:43.325: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYSeries', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.addXYSeries
    04-15 09:08:43.345: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildBarDataset
    04-15 09:08:43.387: E/dalvikvm(333): Could not find class 'org.achartengine.renderer.XYMultipleSeriesRenderer', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildBarRenderer
    04-15 09:08:43.395: E/dalvikvm(333): Could not find class 'org.achartengine.model.CategorySeries', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildCategoryDataset
    04-15 09:08:43.425: E/dalvikvm(333): Could not find class 'org.achartengine.renderer.DefaultRenderer', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildCategoryRenderer
    04-15 09:08:43.425: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildDataset
    04-15 09:08:43.445: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildDateDataset
    04-15 09:08:43.445: E/dalvikvm(333): Could not find class 'org.achartengine.model.MultipleCategorySeries', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildMultipleCategoryDataset
    04-15 09:08:43.485: E/dalvikvm(333): Could not find class 'org.achartengine.renderer.XYMultipleSeriesRenderer', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildRenderer
    04-15 09:08:43.525: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.AverageCubicTemperatureChart.execute
    04-15 09:08:43.545: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.TrigonometricFunctionsChart.execute
    04-15 09:08:43.555: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.ScatterChart.execute
    04-15 09:08:43.555: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.SalesComparisonChart.execute
    04-15 09:08:43.565: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.ProjectStatusChart.execute
    04-15 09:08:43.576: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.SalesGrowthChart.execute
    04-15 09:08:43.595: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.ProjectStatusBubbleChart.execute
    04-15 09:08:43.606: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.TemperatureChart.execute
    04-15 09:08:43.606: E/dalvikvm(333): Could not find class 'org.achartengine.model.CategorySeries', referenced from method org.achartengine.chartdemo.demo.chart.WeightDialChart.execute
    04-15 09:08:43.615: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.SensorValuesChart.execute
    04-15 09:08:43.615: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.CombinedTemperatureChart.execute
    04-15 09:08:43.626: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.MultipleTemperatureChart.execute
    04-15 09:13:51.145: E/AndroidRuntime(333): Uncaught handler: thread main exiting due to uncaught exception
    04-15 09:13:51.155: E/AndroidRuntime(333): java.lang.NoClassDefFoundError: [Lorg.achartengine.chart.PointStyle;
    04-15 09:13:51.155: E/AndroidRuntime(333):  at org.achartengine.chartdemo.demo.chart.AverageTemperatureChart.execute(AverageTemperatureChart.java:72)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at org.achartengine.chartdemo.demo.ChartDemo.onListItemClick(ChartDemo.java:102)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.app.ListActivity$2.onItemClick(ListActivity.java:312)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.widget.ListView.performItemClick(ListView.java:3285)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.os.Handler.handleCallback(Handler.java:587)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.os.Handler.dispatchMessage(Handler.java:92)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.os.Looper.loop(Looper.java:123)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at android.app.ActivityThread.main(ActivityThread.java:4363)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at java.lang.reflect.Method.invokeNative(Native Method)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at java.lang.reflect.Method.invoke(Method.java:521)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    04-15 09:13:51.155: E/AndroidRuntime(333):  at dalvik.system.NativeStart.main(Native Method)
    04-15 09:13:51.175: E/dalvikvm(333): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
</code>
Da Sie Achatengine Jar verwenden, müssen Sie diese Aktivität in Ihre Manifestdatei <activity android: name = "org.achartengine.GraphicalActivity" /> einfügen Shankar Agarwal
Ist das vollständige Protokoll Katze oder ich denke, etwas von Logcat Fehlerprotokoll verpasst Shankar Agarwal
Können Sie zeigen, wie Sie den Code verwenden, den Sie geschrieben haben, und die achartengine jar-Datei im libs-Ordner hinzufügen? Shankar Agarwal
Sieht nach einem Berechtigungsproblem aus. Schau dir das anstackoverflow.com/questions/5842537/… Brice Durand

Deine Antwort

2   die antwort
41

Eine Lösung hierfür finden Sie hier:http://groups.google.com/group/achartengine/browse_thread/thread/4cb1efddad3c19d0/2b59e5164e05c469#2b59e5164e05c469

Dan

Zitat:

In Eclipse: -> Klicken Sie mit der rechten Maustaste auf Ihr Projekt. - Gehen Sie zum Erstellungspfad. - Wählen Sie Erstellungspfad konfigurieren. - Gehen Sie zur Registerkarte "Bestellen und Exportieren". > Verschiebe es nach oben, so dass es genau unter den Android-Abhängigkeiten liegt (manchmal kann dies einen Unterschied machen, wenn du mehrere Jars hast)

Klicken Sie auf OK und bereinigen Sie Ihr Projekt. (Projekt -> Reinigen ...)

Führen Sie es erneut aus, und prüfen Sie, ob dies hilfreich ist.

+1 für den Link.Aus dem Thread:, Wenn es sich im Verzeichnis mit dem Namen von befindetlib, benenne das um inlibs oder irgendetwas anderes, und fügen Sie den Erstellungspfad erneut hinzu. Anirudh Ramanathan
Ich habe es nach oben direkt unter src verschoben. Hat funktioniert .. Danke Supun
Danke, ich habe gerade Ihr Zitat verwendet und das Problem behoben - Bonuspunkte für die Kürze :) Fuzzy Analysis
1

Wenn Sie wissen möchten, wie achartengine funktioniert, fügen Sie die achartengine 0.7.0 jar zum libs-Ordner hinzu und verknüpfen Sie sie mit Ihrem Projekt.

<code>public class GeneratedChartDemo extends ListActivity {
  private static final int SERIES_NR = 2;

  private String[] mMenuText;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // I know, I know, this should go into strings.xml and accessed using
    // getString(R.string....)
    mMenuText = new String[] { "Line chart", "Scatter chart", "Time chart", "Bar chart" };
   setListAdapter(new SimpleAdapter(this, getListValues(), android.R.layout.simple_list_item_1,
        new String[] { "name"}, new int[] { android.R.id.text1 }));
  }

  private List<Map<String, String>> getListValues() {
    List<Map<String, String>> values = new ArrayList<Map<String, String>>();
    int length = mMenuText.length;
    for (int i = 0; i < length; i++) {
      Map<String, String> v = new HashMap<String, String>();
      v.put("name", mMenuText[i]);
      values.add(v);
    }
    return values;
  }

  private XYMultipleSeriesDataset getDemoDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    final int nr = 10;
    Random r = new Random();
    for (int i = 0; i < SERIES_NR; i++) {
      XYSeries series = new XYSeries("Demo series " + (i + 1));
      for (int k = 0; k < nr; k++) {
        series.add(k, 20 + r.nextInt() % 100);
      }
      dataset.addSeries(series);
    }
    return dataset;
  }

  private XYMultipleSeriesDataset getDateDemoDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    final int nr = 10;
    long value = new Date().getTime() - 3 * TimeChart.DAY;
    Random r = new Random();
    for (int i = 0; i < SERIES_NR; i++) {
      TimeSeries series = new TimeSeries("Demo series " + (i + 1));
      for (int k = 0; k < nr; k++) {
        series.add(new Date(value + k * TimeChart.DAY / 4), 20 + r.nextInt() % 100);
      }
      dataset.addSeries(series);
    }
    return dataset;
  }

  private XYMultipleSeriesDataset getBarDemoDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    final int nr = 10;
    Random r = new Random();
    for (int i = 0; i < SERIES_NR; i++) {
      CategorySeries series = new CategorySeries("Demo series " + (i + 1));
      for (int k = 0; k < nr; k++) {
        series.add(100 + r.nextInt() % 100);
      }
      dataset.addSeries(series.toXYSeries());
    }
    return dataset;
  }

  private XYMultipleSeriesRenderer getDemoRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);    
    renderer.setMargins(new int[] {20, 30, 15, 0});
    XYSeriesRenderer r = new XYSeriesRenderer();
    r.setColor(Color.BLUE);
    r.setPointStyle(PointStyle.SQUARE);
    r.setFillBelowLine(true);
    r.setFillBelowLineColor(Color.WHITE);
    r.setFillPoints(true);
    renderer.addSeriesRenderer(r);
    r = new XYSeriesRenderer();
    r.setPointStyle(PointStyle.CIRCLE);
    r.setColor(Color.GREEN);
    r.setFillPoints(true);
    renderer.setXLabels(0);
  renderer.addXTextLabel(1, "aga");
  renderer.addXTextLabel(2, "agar");
    renderer.addSeriesRenderer(r);
    renderer.setAxesColor(Color.DKGRAY);
    renderer.setLabelsColor(Color.LTGRAY);
    return renderer;
  }

  public XYMultipleSeriesRenderer getBarDemoRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setMargins(new int[] {20, 30, 15, 0});
    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
    r.setColor(Color.BLUE);
    renderer.addSeriesRenderer(r);
    r = new SimpleSeriesRenderer();
    r.setColor(Color.GREEN);
    renderer.addSeriesRenderer(r);
    return renderer;
  }

  private void setChartSettings(XYMultipleSeriesRenderer renderer) {
    renderer.setChartTitle("Chart demo");
    renderer.setXTitle("x values");
    renderer.setYTitle("y values");
    renderer.setXAxisMin(0);
    renderer.setXAxisMax(5);
    renderer.setYAxisMin(0);
    renderer.setYAxisMax(250);
  }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    switch (position) {
    case 0:
      Intent intent = ChartFactory.getLineChartIntent(this, getDemoDataset(), getDemoRenderer());
      startActivity(intent);
      break;
    case 1:
      intent = ChartFactory.getScatterChartIntent(this, getDemoDataset(), getDemoRenderer());
      startActivity(intent);
      break;
    case 2:
      intent = ChartFactory.getTimeChartIntent(this, getDateDemoDataset(), getDemoRenderer(), null);
      startActivity(intent);
      break;
    case 3:
      XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
      setChartSettings(renderer);
      intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
      startActivity(intent);
      break;
    }
  }
}
</code>

Verwandte Fragen