2012-09-22 78 views
0

可能重複:
Issues while showing a barchart in android誰能告訴我這個Logcat需要什麼?

誰能告訴我什麼是這個logcat的要求很高呢?

現在我正嘗試在android中使用web service創建條形圖。這意味着我從Web服務獲取x和y軸值。

logcat的

09-22 12:23:04.847: I/Process(310): Sending signal. PID: 310 SIG: 9 
09-22 12:23:50.852: W/KeyCharacterMap(339): No keyboard for id 0 
09-22 12:23:50.852: W/KeyCharacterMap(339): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
09-22 12:23:59.532: D/AndroidRuntime(339): Shutting down VM 
09-22 12:23:59.532: W/dalvikvm(339): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
09-22 12:23:59.542: E/AndroidRuntime(339): FATAL EXCEPTION: main 
09-22 12:23:59.542: E/AndroidRuntime(339): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xmlparsing_test/com.example.xmlparsing_test.BarGraphActivity}: java.lang.NullPointerException 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.os.Looper.loop(Looper.java:123) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-22 12:23:59.542: E/AndroidRuntime(339): at java.lang.reflect.Method.invokeNative(Native Method) 
09-22 12:23:59.542: E/AndroidRuntime(339): at java.lang.reflect.Method.invoke(Method.java:521) 
09-22 12:23:59.542: E/AndroidRuntime(339): at com. android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-22 12:23:59.542: E/AndroidRuntime(339): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-22 12:23:59.542: E/AndroidRuntime(339): at dalvik.system.NativeStart.main(Native Method) 
09-22 12:23:59.542: E/AndroidRuntime(339): Caused by: java.lang.NullPointerException 
09-22 12:23:59.542: E/AndroidRuntime(339): at com.example.xmlparsing_test.BarGraphActivity.buildBarDataset(BarGraphActivity.java:122) 
09-22 12:23:59.542: E/AndroidRuntime(339): at com.example.xmlparsing_test.BarGraphActivity.DrawGraph(BarGraphActivity.java:64) 
09-22 12:23:59.542: E/AndroidRuntime(339): at com.example.xmlparsing_test.BarGraphActivity.onCreate(BarGraphActivity.java:26) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-22 12:23:59.542: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
09-22 12:23:59.542: E/AndroidRuntime(339): ... 11 more 

BarGraphActivity.java

public class BarGraphActivity extends Chart 
{ 
int[] arr_val; 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main1); 
    DrawGraph(); 
} 
public void DrawGraph() 
{ 

Bundle extras = getIntent().getExtras(); 
if(extras != null) 
{ 
arr_val = extras.getIntArray("goto_next_page"); 
}else 
{}; 

List<int[]> values = new ArrayList<int[]>(); 

values.add(arr_val); 


int[] colors = new int[] { Color.WHITE, Color.BLACK}; 

String[] titles = new String[] { " Orders percentage",""}; 

XYMultipleSeriesRenderer renderer = buildBarRenderer(colors); 
renderer.setOrientation(Orientation.HORIZONTAL); 

    setChartSettings(renderer, "some texts", " ", " ",0,arr_val, 0,arr_val, Color.GRAY, Color.LTGRAY); 

renderer.setXLabels(1); 
renderer.addXTextLabel(2, "orderNo"); 
renderer.addYTextLabel(2, "freight"); 
renderer.setPanEnabled(true, false); 

int length = renderer.getSeriesRendererCount(); 
for (int i = 0; i < length; i++) 
{ 
    SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i); 
    seriesRenderer.setDisplayChartValues(true); 
    } 

ChartFactory.getBarChartIntent(this, buildBarDataset(titles, values), renderer,Type.DEFAULT); 
} 

public XYMultipleSeriesRenderer buildBarRenderer(int[] colors) 
{ 
// creates a SeriesRenderer and initializes it with useful default values as well as colors 

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 

renderer.setAxisTitleTextSize(15); 
renderer.setChartTitleTextSize(20); 
renderer.setLabelsTextSize(15); 
renderer.setLegendTextSize(15); 

int length = colors.length; 
for (int i = 0; i < length; i++) 
{ 
    SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
    r.setColor(colors[i]); 
    renderer.addSeriesRenderer(r); 
    } 
    return renderer; 
    } 

public void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle, 
String yTitle, int xMin, int[] arr_val2, int yMin, int[] arr_val3, int axesColor,int labelsColor) 
    { 
    // sets lots of default values for this renderer 

renderer.setChartTitle(title); 

renderer.setXTitle(xTitle); 
renderer.setYTitle(yTitle); 

renderer.setXAxisMin(xMin); 

renderer.setYAxisMin(yMin); 
renderer.setAxesColor(axesColor); 
renderer.setLabelsColor(labelsColor); 

renderer.setApplyBackgroundColor(true); 
renderer.setBackgroundColor(Color.BLACK); 
} 

public XYMultipleSeriesDataset buildBarDataset(String[] titles, List<int[]> values) 
{ 
// adds the axis titles and values into the dataset 

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 

int length = titles.length; 

for (int i = 0; i < length; i++) 
{ 
    CategorySeries series = new CategorySeries(titles[i]); 

    int[] v = values.get(i); 

    int seriesLength = v.length; 

    for (int k = 0; k < seriesLength; k++) 
    { 
    series.add(v[k]); 
    } 

    dataset.addSeries(series.toXYSeries()); 
    } 
return dataset; 
}} 
+0

什麼是BarGraphActivity.java:122 –

+0

@RaghavSood INT seriesLength = v.length;這是BarGraphActivity.java上的第122行 – Nakshatran

+0

v爲空。這就是你的LogCat所說的。如果您可以發佈該代碼和周圍的代碼,我們可能會提供一個解決方案。 –

回答

1

你必須要在以下行的NPE:

int seriesLength = v.length; 

因爲你的代碼表明v正在從values[] List填充,List可能在您使用的索引處爲null。

+0

Raghav Sood你能告訴我如何解決這個問題嗎? – Nakshatran

+0

不要傳遞空/空列表? –

+0

我沒有通過任何空的名單... – Nakshatran

0

您正在接收來自上一活動的空意圖。

這條線,

Bundle extras = getIntent().getExtras(); 

檢查,如果你正在你的意圖或沒有任何價值。 如果其不爲空,那麼肯定是在這一行空值,

arr_val = extras.getIntArray("goto_next_page"); 
相關問題