Status Update
Comments
du...@google.com <du...@google.com>
au...@google.com <au...@google.com> #3
au...@google.com <au...@google.com> #4
I'd say lets revert it for 3.6 and sort out the issues, reland in 4.0
sp...@google.com <sp...@google.com> #5
elliptical_arc_argument::=
number comma_wsp? number comma_wsp? number comma_wsp
flag comma_wsp? flag comma_wsp? coordinate_pair
flag::=("0"|"1")
In the string above both flags are represented by "1.0", which doesn't conform to flag::=("0"|"1").
Does the string "a19.0,19.0 0.0,1.0 1.0,38.0 0.0" come from AndroidX source?
au...@google.com <au...@google.com> #6
Here is the source of the string:
a19.0,19.0 0.0,1.0 1.0,38.0 0.0
is actually a substring of what we are trying to parse, the full path is:
<path
android:fillColor="#e2e2e2"
android:pathData="M24.0,24.0m-19.0,0.0a19.0,19.0 0.0,1.0 1.0,38.0 0.0a19.0,19.0 0.0,1.0 1.0,-38.0 0.0"/>
This vector has been around for 2 years now and it broke on AGP 3.6 beta06 -> rc01 upgrade. That really does not sound like the right time to break compatibility.
au...@google.com <au...@google.com> #7
Two questions:
- How do we workaround this for now?
- Can we give better error messages to users?
Caused by: java.lang.RuntimeException: Error in parsing "a19.0,19.0 0.0,1.0 1.0,38.0 0.0"
is extremely unfriendly.
sp...@google.com <sp...@google.com> #8
sp...@google.com <sp...@google.com> #9
2. In 4.0 I can probably tweak the parser to accept "1.0" and "0.0" as valid flags.
du...@google.com <du...@google.com> #10
I have very little understanding of svg so feel free to let me know if I made a mistake - the overall result seems to look the same though (white circle in the background).
The new path data which seems to work is: M24.0,24.0m-19.0,0.0a19.0,19.0 0.0,1 1,38.0 0.0a19.0,19.0 0.0,1 1,-38.0 0.0
sp...@google.com <sp...@google.com> #11
be...@gmail.com <be...@gmail.com> #12
sa...@gmail.com <sa...@gmail.com> #13
sa...@gmail.com <sa...@gmail.com> #14
Add
Description
Caused by: java.lang.RuntimeException: Error while processing /google/androidx-master-dev/frameworks/support/slices/test/src/main/res/drawable/ic_shortcut.xml : Error in parsing "a19.0,19.0 0.0,1.0 1.0,38.0 0.0"
at com.android.ide.common.resources.MergedResourceWriter$FileGenerationWorkAction.run(MergedResourceWriter.java:420)
at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:348)
at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:50)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:53)
at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:217)
at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:212)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 6 more
Caused by: java.lang.RuntimeException: Error in parsing "a19.0,19.0 0.0,1.0 1.0,38.0 0.0"
at com.android.ide.common.vectordrawable.PathParser.getFloats(PathParser.java:137)
at com.android.ide.common.vectordrawable.PathParser.parsePath(PathParser.java:170)
at com.android.ide.common.vectordrawable.VdPath.setNameValue(VdPath.java:466)
at com.android.ide.common.vectordrawable.VdPath.parseAttributes(VdPath.java:590)
at com.android.ide.common.vectordrawable.VdTree.parsePathAttributes(VdTree.java:216)
at com.android.ide.common.vectordrawable.VdTree.parseTree(VdTree.java:148)
at com.android.ide.common.vectordrawable.VdTree.parse(VdTree.java:129)
at com.android.ide.common.vectordrawable.VdParser.parse(VdParser.java:39)
at com.android.ide.common.vectordrawable.VdPreview.getPreviewFromVectorXml(VdPreview.java:197)
at com.android.builder.png.VectorDrawableRenderer.generateFile(VectorDrawableRenderer.java:224)
at com.android.build.gradle.tasks.MergeResources$MergeResourcesVectorDrawableRenderer.generateFile(MergeResources.java:436)
at com.android.ide.common.resources.MergedResourceWriter$FileGenerationWorkAction.run(MergedResourceWriter.java:412)
... 32 more
Caused by: java.lang.NumberFormatException: For input string: "."
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at com.android.ide.common.vectordrawable.PathParser.getFloats(PathParser.java:126)
... 43 more
Studio Build: Android Studio 3.6 RC 1 #AI-192.7142.36.36.6071332, built on December 13, 2019
Version of Gradle Plugin: 3.6.0-rc01
Version of Gradle: gradle-6.0-bin.zip
Version of Java: 1.8.0_212-release-1586-b4-5784211 amd64
OS: Linux 4.19.67-2rodete2-amd64
Steps to Reproduce:
1. Check out AndroidX source (go/androidx-dev or feel free to ping dustinlam@ for help getting setup)
2. Pull the patches from this topic
3. ./gradlew slice-test:packageDebugResources