Question

I'm fairly new in the android developing scene, however I have done a few dead simple applications to get an understanding of what the workflow would be like in the environment.

I'm having a difficulty running the example program called SimpleXYPlotExample and here's the code, manifest, main.xml and activity.java, respectively. I know this is a user error of some sort, but it would be great if someone could give me some helpful pointers as to what I'm doing wrong.

At first, all the code was broken, but I realized i forgot to import the library in. Now that I have done so, I try to run the program on my nexus s and it just crashes as it enters it.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
    android:minSdkVersion="6"
    android:targetSdkVersion="16"/>

    <application android:label="SimpleXYPlotExample" 
                 android:icon="@drawable/icon" 
                 android:debuggable="true"
                 android:hardwareAccelerated="false">
        <activity android:name=".MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest> 
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <com.androidplot.xy.XYPlot
    android:id="@+id/mySimpleXYPlot"
    android:layout_width="fill_parent"
    android:layout_height="150px"
    android:layout_marginTop="10px"
    android:layout_marginLeft="10px"
    android:layout_marginRight="10px"
    andsroidplot.title="A Simple XYPlot Example"
    androidplot.ticksPerRangeLabel="4"
    androidplot.ticksPerDomainLabel="2"
    androidplot.gridPadding="4dp|4dp|4dp|4dp"
    />
</LinearLayout>
    package com.example;

    import java.util.Arrays;

    import android.app.Activity;
    import android.os.Bundle;

    import com.androidplot.series.XYSeries;
    import com.androidplot.ui.AnchorPosition;
    import com.androidplot.xy.LineAndPointFormatter;
    import com.androidplot.xy.SimpleXYSeries;
    import com.androidplot.xy.XLayoutStyle;
    import com.androidplot.xy.XYPlot;
    import com.androidplot.xy.YLayoutStyle;


    public class MyActivity extends Activity
    {

        private XYPlot plot;

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            // initialize our XYPlot reference:
            plot = (XYPlot) findViewById(R.id.mySimpleXYPlot);

            // add a new series
            XYSeries mySeries = new SimpleXYSeries(
                    Arrays.asList(0, 25, 55, 2, 80, 30, 99, 0, 44, 6),
                    SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "series1");
            plot.addSeries(mySeries, new LineAndPointFormatter(
                    getApplicationContext(), R.xml.f1));

            // reposition the domain label to look a little cleaner:
            plot.position(plot.getDomainLabelWidget(), // the widget to position
                    45,                                // x position value, in this case 45 pixels
                    XLayoutStyle.ABSOLUTE_FROM_LEFT,   // how the x position value is applied, in this case from the left
                    0,                                 // y position value
                    YLayoutStyle.ABSOLUTE_FROM_BOTTOM, // how the y position is applied, in this case from the bottom
                    AnchorPosition.LEFT_BOTTOM);       // point to use as the origin of the widget being positioned

            plot.centerOnRangeOrigin(60);
            plot.centerOnDomainOrigin(5);
        }

}

This may be contributed by the fact that the plot doesn't even show up on the graphical layout. This is what it looks like with this code:

http://imgur.com/qYl96Zi

As you can see, I have imported the androidplot library. Please advise.

Was it helpful?

Solution

The screenshot appears to be from the eclipse gui editor, which as the exception mentions does not support the setShadowLayer method and thus will not render. That's just a limitation with Eclipse and not a bug in your code or the library.

Normally to be able to answer questions regarding why Androidplot is crashing you'd need to supply the corresponding stack trace. I did however notice this typo in your xml:

andsroidplot.title="A Simple XYPlot Example"

As far as getting a working WYSIWYG editor my personal suggestion would be to give either IntelliJ IDEA or Android Studio (built on the current EAP version IntelliJ IDEA) a try. Both are free and both are in (IMHO) far superior IDE's.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top