2014年6月27日金曜日

Eclipce Conversion to Dalvik format failed with error 1 が出たときの疑う場所

androidの開発環境と共通関数の用意をしているて、とりあえず途中で動くか確認を…としようとしたところエラーがでてアプリが開かなくなった(+ω+;)


いろいろなエラーが出ていて、一つずつサイトで調べていき…
コンパイラ系のエラーもでており(・・‘)機能までアプリ開いてたのに…

Refreshを行ったり…
プロジェクトのクリーンを行ったり… Profect > Clean
JavaCompilerのレベルを変更したり… 1.4 > 1.6
eclipceのキャッシュ削除…
そして再起動…

やっと見つけました(・ω・;)


Conversion to Dalvik format failed with error 1

こちらのサイトのおかげで沼から脱出することができました(;ω;)アリガトウゴザイマス


http://hocchi.blog.so-net.ne.jp/2011-01-25


サイトによると Preference > Java Build Path に参照ライブラリのパスが追加されていて悪さをしていたと書かれてありました。

…と共通関数を用意してるときにひとつjarファイルをlibsに入れた事を思い出し、消してみたところ
アプリが開くようになりましたρ(・し・)

何時間もこいつに悩まされたところでやっと開放(・_・‘)

まぁとりあえず開くようにはなったのでヨカッタヨカッタ(・_・‘)

2014年6月25日水曜日

aChartEngineライブラリ 円グラフ



まず、ライブラリを使用する為に、jarファイルをサイトからダウンロードしてきます。
https://code.google.com/p/achartengine/downloads/list

achartengine-1.1.0.jar (最新版をおとしてきてください) (・ω・)

落としてきたjarファイルをlibsディレクトリに追加してください。(。。) これでライブラリが使用できる準備が整いました(・ω・*)
 


LinearLayout layout = new LinearLayout(this);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT );
layout.setLayoutParams(param);


//series 情報を用意する
CategorySeries series = this.getCategorySeries();
int cnt = series.getItemCount();//seriesの個数ゲット

//renderer 設定情報を用意する
DefaultRenderer renderer = this.getDefaultRenderer(cnt);


//円グラフのViewを作成する
//第一引数 コンストラクタ
//第二引数 series (内容) CategorySeries型 
//第三引数 renderer (設定) DefaultRenderer型

GraphicalView chartView = ChartFactory.getPieChartView(this,
     series, renderer);


//表示エリアにViewを追加する
layout.addView(chartView);


■ 内容を準備する ここは通信して情報を取得する形になると思いますが、今は静的に用意します(・ω・;)
protected CategorySeries getCategorySeries() {


  CategorySeries series = new CategorySeries("PIE_TEST");

  int length = 5;
  int index;
  for (index = 0; index < length; index++) {

   int value = (int) (Math.random() * (100 / length ));//値は適当に(・ω・)テストだし(・o・;)
   String name = "LABEL_" + (index + 1) + " : " + value;
   series.add(name, value);

  }

  return series ;
 }

 
■ 設定情報を準備する
 private DefaultRenderer getDefaultRenderer(int cnt) {

  DefaultRenderer renderer = new DefaultRenderer();

  renderer.setChartTitle("PIE_TEST");//グラフのタイトル
  renderer.setDisplayValues(true);// 大元のDisplayを表示設定(  )
  renderer.setShowLegend(true);// 凡例を表示する
  renderer.setShowLabels(true);// ラベルの表示をさせるか

  // コントロール関連
  renderer.setZoomEnabled(true);// ズームさせるか
  renderer.setZoomButtonsVisible(true);// ズームボタンの設置をするか
  renderer.setPanEnabled(true);// 移動を許可するか

  // クリック反応させたい時
  renderer.setClickEnabled(true);
  renderer.setSelectableBuffer(10);

  // 見た目
  renderer.setLabelsColor(Color.parseColor(getString(R.color.gray)));// ラベル色
  renderer.setLabelsTextSize(20f);//ラベルサイズ


        //SimpleSeriesRenderer を追加する
        //series の個数分 seriesRenderer を用意しないとエラーでますよ。
                //数合わせてくらさい。 checkParametersではじかれますよ
  int index;
  for (index = 0; index < cnt; index++) {

   SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();


   int red = (int) (Math.random() * 255);
   int green = (int) (Math.random() * 255);
   int blue = (int) (Math.random() * 255);

   seriesRenderer.setColor(Color.rgb(red, green, blue));

   seriesRenderer.setChartValuesTextSize(25f);


   // seriesRenderer.setHighlighted(true);// 円グラフにはサポートされている(クローズアップしたい場合に使用する)

   renderer.addSeriesRenderer(seriesRenderer);// 大元のレンダラーに追加

  }

  return renderer;
 }




*グラフの中に値を表示したい場合は、大元のrendarereのsetDisplayValuesにtrueを入れると表示されます。

SimpleSeriesRendererにsetDisplayValuesがある!!(大元にもあるとそのときはきずいてなっかた…orz)

という事で最初は、SimpleSeriesRendererのsetDisplayValuesに設定していても表示はされず。orz ナゼナゼ…

フラグはきちんと変わっていたようなのですが…(・_・?)

ここで私ははまりました…(・_・;)

setDisplayValuesにtrue入れても表示されないよーってゆう人がでるかもしれないので久々にブログを書いておきました。メモメモφ(。。)



うーん(・_・)
試しに指定のものだけ表示しないとかできるのかとfalseをいれてみましたが、大元がtrueであるとそっちが優先されてしまうようですね(・ω・)
なぜ用意されているのかわからずじまいです(・ω・;;;;;)
詳しいかたがいらっしゃいましたら是非教えていただきたいです(・ω・)ノシ


次は、TimeChartをいじります。