Saturday, 21 November 2015

XML : AndroidPlot xml not rendering in Android studio

The AndroidPlot XYPlot will not render in the xml preview. I am using AndroidPlot 0.6.1. I have the jar in my libs folder. And I have it as a dependency in the Gradle script. In addition, I am able to compile, run the application, and see the graph.

It is pretty tedious though to have to run the app in order to see simple visual changes. I watched the Maven quickstart video, and I saw that the creator Nick Fellows was able to see the preview.

Here is the stacktrace from the preview:

java.lang.AssertionError at android.content.res.BridgeResources.getDimension(BridgeResources.java:345) at com.androidplot.util.Configurator.parseFloatAttr(Configurator.java:145) at com.androidplot.util.Configurator.inflateParams(Configurator.java:236) at com.androidplot.util.Configurator.configure(Configurator.java:322) at com.androidplot.util.Configurator.configure(Configurator.java:286) at com.androidplot.Plot.loadAttrs(Plot.java:371) at com.androidplot.Plot.init(Plot.java:316) at com.androidplot.Plot.<init>(Plot.java:249) at com.androidplot.xy.XYPlot.<init>(XYPlot.java:150) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:177) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:214) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:413) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485) at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590) at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:351) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

I have notice that whenever I remove the custom xml attributes (below), I am able to preview the graph. This means, though, that I can't style the graph the way I want through the preview.

androidPlot.titleWidget.labelPaint.textSize="@dimen/title_font_size" androidPlot.graphWidget.rangeLabelPaint.textSize="@dimen/range_tick_label_font_size" androidPlot.legendWidget.textPaint.textSize="@dimen/legend_text_font_size"

No comments:

Post a Comment