Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues while using packageReleaseMsi Task with v1.2.0 #2393

Closed
changhexuefei opened this issue Oct 12, 2022 · 18 comments
Closed

Issues while using packageReleaseMsi Task with v1.2.0 #2393

changhexuefei opened this issue Oct 12, 2022 · 18 comments
Assignees

Comments

@changhexuefei
Copy link

Task :proguardReleaseJars
ProGuard, version 7.2.2
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/DEPENDENCIES]
Note: duplicate definition of resource file [META-INF/LICENSE]
Note: duplicate definition of resource file [META-INF/NOTICE]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/DEPENDENCIES]
Note: duplicate definition of resource file [META-INF/LICENSE]
Note: duplicate definition of resource file [META-INF/NOTICE]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE-notice.md]
Note: duplicate definition of resource file [META-INF/LICENSE.md]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE-notice.md]
Note: duplicate definition of resource file [META-INF/LICENSE.md]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE-notice.md]
Note: duplicate definition of resource file [META-INF/LICENSE.md]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE-notice.md]
Note: duplicate definition of resource file [META-INF/LICENSE.md]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/LICENSE-notice.md]
Note: duplicate definition of resource file [META-INF/LICENSE.md]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/skiko.kotlin_module]
Note: duplicate definition of resource file [not-supported-adapter.list]
Note: duplicate definition of program class [org.jetbrains.skia.Actuals_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.AnimationDisposalMethod]
Note: duplicate definition of program class [org.jetbrains.skia.AnimationDisposalMode]
Note: duplicate definition of program class [org.jetbrains.skia.AnimationFrameInfo$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.AnimationFrameInfo]
Note: duplicate definition of program class [org.jetbrains.skia.ArrayDecoder]
Note: duplicate definition of program class [org.jetbrains.skia.BackendRenderTarget$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.BackendRenderTarget$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.BackendRenderTarget]
Note: duplicate definition of program class [org.jetbrains.skia.BackendRenderTargetKt]
Note: duplicate definition of program class [org.jetbrains.skia.Bitmap$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Bitmap$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Bitmap$imageInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Bitmap]
Note: duplicate definition of program class [org.jetbrains.skia.BitmapKt]
Note: duplicate definition of program class [org.jetbrains.skia.BlendMode]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$Companion$makeCharacterInstance$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$Companion$makeLineInstance$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$Companion$makeSentenceInstance$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$Companion$makeWordInstance$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$clone$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator$setText$1]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIterator]
Note: duplicate definition of program class [org.jetbrains.skia.BreakIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.Canvas$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Canvas$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Canvas$localToDevice$1]
Note: duplicate definition of program class [org.jetbrains.skia.Canvas]
Note: duplicate definition of program class [org.jetbrains.skia.CanvasKt]
Note: duplicate definition of program class [org.jetbrains.skia.ClipMode]
Note: duplicate definition of program class [org.jetbrains.skia.Codec$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Codec$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Codec$framesInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Codec$getFrameInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Codec$imageInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Codec]
Note: duplicate definition of program class [org.jetbrains.skia.CodecKt]
Note: duplicate definition of program class [org.jetbrains.skia.Color]
Note: duplicate definition of program class [org.jetbrains.skia.Color4f$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Color4f]
Note: duplicate definition of program class [org.jetbrains.skia.ColorAlphaType]
Note: duplicate definition of program class [org.jetbrains.skia.ColorChannel]
Note: duplicate definition of program class [org.jetbrains.skia.ColorFilter$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ColorFilter]
Note: duplicate definition of program class [org.jetbrains.skia.ColorFilterKt]
Note: duplicate definition of program class [org.jetbrains.skia.ColorInfo$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ColorInfo]
Note: duplicate definition of program class [org.jetbrains.skia.ColorMatrix]
Note: duplicate definition of program class [org.jetbrains.skia.ColorSpace$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ColorSpace$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.ColorSpace]
Note: duplicate definition of program class [org.jetbrains.skia.ColorSpaceKt]
Note: duplicate definition of program class [org.jetbrains.skia.ColorType$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ColorType$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.ColorType]
Note: duplicate definition of program class [org.jetbrains.skia.ColorTypeKt]
Note: duplicate definition of program class [org.jetbrains.skia.ContentChangeMode]
Note: duplicate definition of program class [org.jetbrains.skia.CubicResampler]
Note: duplicate definition of program class [org.jetbrains.skia.Data$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Data$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Data]
Note: duplicate definition of program class [org.jetbrains.skia.DataKt]
Note: duplicate definition of program class [org.jetbrains.skia.Data_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.DirectContext$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.DirectContext]
Note: duplicate definition of program class [org.jetbrains.skia.DirectContextKt]
Note: duplicate definition of program class [org.jetbrains.skia.Drawable$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Drawable$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Drawable$bounds$1$1]
Note: duplicate definition of program class [org.jetbrains.skia.Drawable]
Note: duplicate definition of program class [org.jetbrains.skia.DrawableKt]
Note: duplicate definition of program class [org.jetbrains.skia.Drawable_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.EncodedImageFormat]
Note: duplicate definition of program class [org.jetbrains.skia.EncodedOrigin$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.EncodedOrigin]
Note: duplicate definition of program class [org.jetbrains.skia.FilterBlurMode]
Note: duplicate definition of program class [org.jetbrains.skia.FilterMipmap]
Note: duplicate definition of program class [org.jetbrains.skia.FilterMode]
Note: duplicate definition of program class [org.jetbrains.skia.FilterQuality]
Note: duplicate definition of program class [org.jetbrains.skia.FilterTileMode]
Note: duplicate definition of program class [org.jetbrains.skia.Font$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Font$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Font$getBounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.Font$measureText$1]
Note: duplicate definition of program class [org.jetbrains.skia.Font$metrics$1]
Note: duplicate definition of program class [org.jetbrains.skia.Font]
Note: duplicate definition of program class [org.jetbrains.skia.FontEdging]
Note: duplicate definition of program class [org.jetbrains.skia.FontExtents]
Note: duplicate definition of program class [org.jetbrains.skia.FontFamilyName]
Note: duplicate definition of program class [org.jetbrains.skia.FontFeature$Companion$parseW3$1]
Note: duplicate definition of program class [org.jetbrains.skia.FontFeature$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontFeature]
Note: duplicate definition of program class [org.jetbrains.skia.FontHinting]
Note: duplicate definition of program class [org.jetbrains.skia.FontKt]
Note: duplicate definition of program class [org.jetbrains.skia.FontMetrics$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontMetrics]
Note: duplicate definition of program class [org.jetbrains.skia.FontMetricsKt]
Note: duplicate definition of program class [org.jetbrains.skia.FontMgr$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontMgr]
Note: duplicate definition of program class [org.jetbrains.skia.FontMgrKt]
Note: duplicate definition of program class [org.jetbrains.skia.FontSlant]
Note: duplicate definition of program class [org.jetbrains.skia.FontStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontStyle]
Note: duplicate definition of program class [org.jetbrains.skia.FontStyleSet$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontStyleSet]
Note: duplicate definition of program class [org.jetbrains.skia.FontStyleSetKt]
Note: duplicate definition of program class [org.jetbrains.skia.FontVariation$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontVariation]
Note: duplicate definition of program class [org.jetbrains.skia.FontVariationAxis]
Note: duplicate definition of program class [org.jetbrains.skia.FontWeight$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontWeight]
Note: duplicate definition of program class [org.jetbrains.skia.FontWidth$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FontWidth]
Note: duplicate definition of program class [org.jetbrains.skia.FourByteTag$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FourByteTag]
Note: duplicate definition of program class [org.jetbrains.skia.FramebufferFormat$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.FramebufferFormat]
Note: duplicate definition of program class [org.jetbrains.skia.GLBackendState]
Note: duplicate definition of program class [org.jetbrains.skia.GradientStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.GradientStyle]
Note: duplicate definition of program class [org.jetbrains.skia.Graphics$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Graphics]
Note: duplicate definition of program class [org.jetbrains.skia.GraphicsKt]
Note: duplicate definition of program class [org.jetbrains.skia.IHasImageInfo$DefaultImpls]
Note: duplicate definition of program class [org.jetbrains.skia.IHasImageInfo]
Note: duplicate definition of program class [org.jetbrains.skia.IPoint$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.IPoint]
Note: duplicate definition of program class [org.jetbrains.skia.IPointKt]
Note: duplicate definition of program class [org.jetbrains.skia.IRange$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.IRange]
Note: duplicate definition of program class [org.jetbrains.skia.IRangeKt]
Note: duplicate definition of program class [org.jetbrains.skia.IRect$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.IRect]
Note: duplicate definition of program class [org.jetbrains.skia.ISize$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ISize]
Note: duplicate definition of program class [org.jetbrains.skia.Image$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Image$imageInfo$1$1]
Note: duplicate definition of program class [org.jetbrains.skia.Image$imageInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Image]
Note: duplicate definition of program class [org.jetbrains.skia.ImageFilter$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ImageFilter]
Note: duplicate definition of program class [org.jetbrains.skia.ImageFilterKt]
Note: duplicate definition of program class [org.jetbrains.skia.ImageInfo$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ImageInfo]
Note: duplicate definition of program class [org.jetbrains.skia.ImageKt]
Note: duplicate definition of program class [org.jetbrains.skia.InversionMode]
Note: duplicate definition of program class [org.jetbrains.skia.ManagedString$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.ManagedString$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.ManagedString]
Note: duplicate definition of program class [org.jetbrains.skia.ManagedStringKt]
Note: duplicate definition of program class [org.jetbrains.skia.MaskFilter$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.MaskFilter]
Note: duplicate definition of program class [org.jetbrains.skia.MaskFilterKt]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix22$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix22]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix33$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix33]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix33Kt]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix44$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Matrix44]
Note: duplicate definition of program class [org.jetbrains.skia.MipmapMode]
Note: duplicate definition of program class [org.jetbrains.skia.OutputWStream$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.OutputWStream$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.OutputWStream]
Note: duplicate definition of program class [org.jetbrains.skia.OutputWStreamKt]
Note: duplicate definition of program class [org.jetbrains.skia.Paint$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Paint$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Paint]
Note: duplicate definition of program class [org.jetbrains.skia.PaintFilterCanvas$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PaintFilterCanvas]
Note: duplicate definition of program class [org.jetbrains.skia.PaintFilterCanvasKt]
Note: duplicate definition of program class [org.jetbrains.skia.PaintFilterCanvas_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.PaintKt]
Note: duplicate definition of program class [org.jetbrains.skia.PaintMode]
Note: duplicate definition of program class [org.jetbrains.skia.PaintStrokeCap]
Note: duplicate definition of program class [org.jetbrains.skia.PaintStrokeJoin]
Note: duplicate definition of program class [org.jetbrains.skia.Path$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Path$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Path$asLine$rectBuffer$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$bounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$computeTightBounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$getPoint$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$isOval$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$isRRect$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$isRect$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path$lastPt$1]
Note: duplicate definition of program class [org.jetbrains.skia.Path]
Note: duplicate definition of program class [org.jetbrains.skia.PathDirection]
Note: duplicate definition of program class [org.jetbrains.skia.PathEffect$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PathEffect$Style]
Note: duplicate definition of program class [org.jetbrains.skia.PathEffect]
Note: duplicate definition of program class [org.jetbrains.skia.PathEffectKt]
Note: duplicate definition of program class [org.jetbrains.skia.PathEllipseArc]
Note: duplicate definition of program class [org.jetbrains.skia.PathFillMode$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.PathFillMode]
Note: duplicate definition of program class [org.jetbrains.skia.PathKt]
Note: duplicate definition of program class [org.jetbrains.skia.PathMeasure$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PathMeasure$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.PathMeasure]
Note: duplicate definition of program class [org.jetbrains.skia.PathMeasureKt]
Note: duplicate definition of program class [org.jetbrains.skia.PathOp]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegment$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegment]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentIterator$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentIterator]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentIteratorKt$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentKt]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentMask$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PathSegmentMask]
Note: duplicate definition of program class [org.jetbrains.skia.PathVerb]
Note: duplicate definition of program class [org.jetbrains.skia.Picture$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Picture$cullRect$1]
Note: duplicate definition of program class [org.jetbrains.skia.Picture]
Note: duplicate definition of program class [org.jetbrains.skia.PictureKt]
Note: duplicate definition of program class [org.jetbrains.skia.PictureRecorder$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PictureRecorder$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.PictureRecorder]
Note: duplicate definition of program class [org.jetbrains.skia.PictureRecorderKt]
Note: duplicate definition of program class [org.jetbrains.skia.PixelGeometry]
Note: duplicate definition of program class [org.jetbrains.skia.PixelRef$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.PixelRef]
Note: duplicate definition of program class [org.jetbrains.skia.PixelRefKt]
Note: duplicate definition of program class [org.jetbrains.skia.Pixmap$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Pixmap$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Pixmap$info$1$1]
Note: duplicate definition of program class [org.jetbrains.skia.Pixmap]
Note: duplicate definition of program class [org.jetbrains.skia.PixmapKt]
Note: duplicate definition of program class [org.jetbrains.skia.Point$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Point]
Note: duplicate definition of program class [org.jetbrains.skia.Point3]
Note: duplicate definition of program class [org.jetbrains.skia.RRect$Companion$fromInteropPointerNullable$rect$1]
Note: duplicate definition of program class [org.jetbrains.skia.RRect$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.RRect]
Note: duplicate definition of program class [org.jetbrains.skia.RRectKt]
Note: duplicate definition of program class [org.jetbrains.skia.RSXform$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.RSXform]
Note: duplicate definition of program class [org.jetbrains.skia.Rect$Companion$fromInteropPointerNullable$rect$1]
Note: duplicate definition of program class [org.jetbrains.skia.Rect$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Rect]
Note: duplicate definition of program class [org.jetbrains.skia.Region$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Region$Op$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Region$Op]
Note: duplicate definition of program class [org.jetbrains.skia.Region$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.Region]
Note: duplicate definition of program class [org.jetbrains.skia.RegionKt]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeEffect$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeEffect]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeEffectKt]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeEffect_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeShaderBuilder$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeShaderBuilder$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeShaderBuilder]
Note: duplicate definition of program class [org.jetbrains.skia.RuntimeShaderBuilderKt]
Note: duplicate definition of program class [org.jetbrains.skia.SamplingMode$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.SamplingMode]
Note: duplicate definition of program class [org.jetbrains.skia.Shader$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Shader]
Note: duplicate definition of program class [org.jetbrains.skia.ShaderKt]
Note: duplicate definition of program class [org.jetbrains.skia.ShadowUtils]
Note: duplicate definition of program class [org.jetbrains.skia.ShadowUtilsKt]
Note: duplicate definition of program class [org.jetbrains.skia.StdVectorDecoderKt]
Note: duplicate definition of program class [org.jetbrains.skia.Surface$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Surface$imageInfo$1]
Note: duplicate definition of program class [org.jetbrains.skia.Surface]
Note: duplicate definition of program class [org.jetbrains.skia.SurfaceColorFormat]
Note: duplicate definition of program class [org.jetbrains.skia.SurfaceKt]
Note: duplicate definition of program class [org.jetbrains.skia.SurfaceOrigin]
Note: duplicate definition of program class [org.jetbrains.skia.SurfaceProps]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$TextBlobIter$FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$TextBlobIter$Run]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$TextBlobIter]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$blockBounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$bounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob$tightBounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlob]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlobBuilder$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlobBuilder$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlobBuilder]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlobBuilderKt]
Note: duplicate definition of program class [org.jetbrains.skia.TextBlobKt]
Note: duplicate definition of program class [org.jetbrains.skia.TextLine$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.TextLine$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.TextLine]
Note: duplicate definition of program class [org.jetbrains.skia.TextLineKt]
Note: duplicate definition of program class [org.jetbrains.skia.Typeface$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.Typeface$bounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.Typeface]
Note: duplicate definition of program class [org.jetbrains.skia.TypefaceKt]
Note: duplicate definition of program class [org.jetbrains.skia.Typeface_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.U16String$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.U16String$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.U16String]
Note: duplicate definition of program class [org.jetbrains.skia.U16StringKt]
Note: duplicate definition of program class [org.jetbrains.skia.VertexMode]
Note: duplicate definition of program class [org.jetbrains.skia.WStream]
Note: duplicate definition of program class [org.jetbrains.skia.impl.ArrayInteropDecoder]
Note: duplicate definition of program class [org.jetbrains.skia.impl.BufferUtil]
Note: duplicate definition of program class [org.jetbrains.skia.impl.BufferUtilKt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Cleanable]
Note: duplicate definition of program class [org.jetbrains.skia.impl.CleanableImpl]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Cleaner$1]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Cleaner$list$1]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Cleaner]
Note: duplicate definition of program class [org.jetbrains.skia.impl.InteropScope]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Library$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Library]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Log]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Managed$CleanerThunk]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Managed$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Managed]
Note: duplicate definition of program class [org.jetbrains.skia.impl.ManagedKt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Native$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Native]
Note: duplicate definition of program class [org.jetbrains.skia.impl.NativeKt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.NativePointerArray]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Native_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.RefCnt$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.impl.RefCnt$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.impl.RefCnt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.RefCnt_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.impl.Stats]
Note: duplicate definition of program class [org.jetbrains.skia.impl.theScope]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Affinity]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Alignment]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.BaselineMode]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.DecorationLineStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.DecorationStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.DecorationStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.DecorationStyleKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Direction]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.FontCollection$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.FontCollection]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.FontCollectionKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.FontRastrSettings]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.HeightMode]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.LineMetrics$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.LineMetrics]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.LineMetricsKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Paragraph$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Paragraph$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Paragraph$getWordBoundary$1]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Paragraph]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphBuilder$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphBuilder$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphBuilder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphBuilderKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphCache$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphCache]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphCacheKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphStyle$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ParagraphStyleKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.PlaceholderAlignment]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.PlaceholderStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.PositionWithAffinity]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.RectHeightMode]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.RectWidthMode]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Shadow$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.Shadow]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.ShadowKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.StrutStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.StrutStyle$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.StrutStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.StrutStyleKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextBox$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextBox]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextBoxKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextIndent]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle$decorationStyle$1]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle$fontMetrics$1]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle$shadows$1]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyle]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyleAttribute]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TextStyleKt]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TypefaceFontProvider$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TypefaceFontProvider]
Note: duplicate definition of program class [org.jetbrains.skia.paragraph.TypefaceFontProviderKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.BidiRun]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.FontMgrRunIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.FontMgrRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.FontMgrRunIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.FontRun]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.HbIcuScriptRunIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.HbIcuScriptRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.HbIcuScriptRunIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.IcuBidiRunIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.IcuBidiRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.IcuBidiRunIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.JavaTextBidiRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.LanguageRun]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ManagedRunIterator$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ManagedRunIterator$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ManagedRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ManagedRunIteratorKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.RunHandler]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.RunInfo]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ScriptRun]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.Shaper$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.Shaper$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.Shaper]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ShaperKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.Shaper_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ShapingOptions$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.ShapingOptions]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TextBlobBuilderRunHandler$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TextBlobBuilderRunHandler$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TextBlobBuilderRunHandler]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TextBlobBuilderRunHandlerKt]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TrivialBidiRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TrivialFontRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TrivialLanguageRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.shaper.TrivialScriptRunIterator]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Animation$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Animation$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Animation$size$1]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Animation]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilder$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilder$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilder]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilderFlag]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilderKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationBuilder_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.AnimationKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Animation_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.LogLevel]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Logger$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Logger]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.LoggerKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.Logger_jvmKt]
Note: duplicate definition of program class [org.jetbrains.skia.skottie.RenderFlag]
Note: duplicate definition of program class [org.jetbrains.skia.sksg.InvalidationController$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.sksg.InvalidationController$_FinalizerHolder]
Note: duplicate definition of program class [org.jetbrains.skia.sksg.InvalidationController$bounds$1]
Note: duplicate definition of program class [org.jetbrains.skia.sksg.InvalidationController]
Note: duplicate definition of program class [org.jetbrains.skia.sksg.InvalidationControllerKt]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGCanvas]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGCanvasKt]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGContainer$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGContainer]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGDOM$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGDOM$containerSize$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGDOM]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGDOMKt]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLength$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLength]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLengthContext$WhenMappings]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLengthContext]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLengthType]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGLengthUnit]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGNode$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGNode]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGNodeKt]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGPreserveAspectRatio$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGPreserveAspectRatio]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGPreserveAspectRatioAlign$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGPreserveAspectRatioAlign]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGPreserveAspectRatioScale]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$getIntrinsicSize$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$height$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$preserveAspectRatio$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$viewBox$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$width$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$x$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG$y$1]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVG]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGSVGKt]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGTag]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGTransformableNode$Companion]
Note: duplicate definition of program class [org.jetbrains.skia.svg.SVGTransformableNode]
Note: duplicate definition of program class [org.jetbrains.skiko.AWTKt$useDrawingSurfacePlatformInfo$1]
.......
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of program class [module-info]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]

Warning: class [org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules_MatchStatementSet$MatchGenerator_signedExtBitField.class] unexpectedly contains class [org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet$MatchGenerator_unsignedExtBitField]
Note: there were 793 duplicate class definitions.
(https://www.guardsquare.com/proguard/manual/troubleshooting#duplicateclass)
Warning: there were 1 classes in incorrectly named files.
You should make sure all file names correspond to their class names.
The directory hierarchies must correspond to the package hierarchies.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unexpectedclass)
If you don't mind the mentioned classes not being written out,
you could try your luck using the '-ignorewarnings' option.

Task :proguardReleaseJars FAILED

AlexeyTsvetkov added a commit to JetBrains/skiko that referenced this issue Oct 27, 2022
Previously, `skiko-awt.jar` and all of `skiko-awt-runtime-*.jar` files
contained the same bytecode. However, this led to duplication
of bytecode in Compose projects:
* `skiko-awt.jar` is a necessary API dependency of Compose/Desktop, which means
it is a runtime dependency as well;
* `skiko-awt-runtime-*.jar` is a necessary RUNTIME dependency of any Compose/Desktop project.

Thus, both `skiko-awt.jar` and `skiko-awt-runtime-*.jar` ended up in a runtime classpath of
any Compose/Desktop project, so the same classes were present in the runtime classpath twice.
This increased a final application image by approximately 1.1 Mb. Also, it led to
excessive ProGuard warnings, e.g. JetBrains/compose-multiplatform#2393

This change excludes bytecode from `skiko-awt-runtime-*.jar` artifacts, and adds
Maven dependency `skiko-awt-runtime-*.jar` -> `skiko-awt.jar`, so
many existing Maven/Gradle usages of `skiko-awt-runtime-*.jar` will continue to work.
AlexeyTsvetkov added a commit to JetBrains/skiko that referenced this issue Oct 31, 2022
* Exclude bytecode from skiko-awt-runtime-*.jar files

Previously, `skiko-awt.jar` and all of `skiko-awt-runtime-*.jar` files
contained the same bytecode. However, this led to duplication
of bytecode in Compose projects:
* `skiko-awt.jar` is a necessary API dependency of Compose/Desktop, which means
it is a runtime dependency as well;
* `skiko-awt-runtime-*.jar` is a necessary RUNTIME dependency of any Compose/Desktop project.

Thus, both `skiko-awt.jar` and `skiko-awt-runtime-*.jar` ended up in a runtime classpath of
any Compose/Desktop project, so the same classes were present in the runtime classpath twice.
This increased a final application image by approximately 1.1 Mb. Also, it led to
excessive ProGuard warnings, e.g. JetBrains/compose-multiplatform#2393

This change excludes bytecode from `skiko-awt-runtime-*.jar` artifacts, and adds
Maven dependency `skiko-awt-runtime-*.jar` -> `skiko-awt.jar`, so
many existing Maven/Gradle usages of `skiko-awt-runtime-*.jar` will continue to work.
@igordmn
Copy link
Collaborator

igordmn commented Nov 4, 2022

The majority of duplicate definition of program class [org.jetbrains.skia... should be fixed in 1.2.0-rc03.

In the codeviewer sample we still get these warning:

Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/desktop.kotlin_module]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: there were 28 duplicate class definitions.
      (https://www.guardsquare.com/proguard/manual/troubleshooting#duplicateclass)
Note: kotlin.coroutines.jvm.internal.DebugMetadataKt calls 'Class.getAnnotation'
Note: kotlin.jvm.internal.ReflectionFactory calls 'Class.getGenericInterfaces'
Note: kotlin.reflect.TypesJVMKt calls 'Class.getTypeParameters'
Note: kotlin.reflect.TypesJVMKt calls 'Class.getDeclaringClass'
Note: kotlin.jvm.internal.ClassReference$Companion calls 'Class.getEnclosingMethod'
Note: kotlin.jvm.internal.ClassReference$Companion calls 'Class.getEnclosingConstructor'
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
Note: kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion: can't find dynamically referenced class android.os.Build$VERSION
Note: kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion: can't find dynamically referenced class android.os.Build$VERSION
Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
Note: kotlinx.coroutines.debug.internal.DebugProbesImpl: can't find dynamically referenced class kotlinx.coroutines.debug.internal.ByteBuddyDynamicAttach
Note: kotlinx.coroutines.internal.FastServiceLoaderKt: can't find dynamically referenced class android.os.Build
Note: kotlin.coroutines.jvm.internal.DebugMetadataKt accesses a declared field 'label' dynamically
Note: kotlin.coroutines.jvm.internal.ModuleNameRetriever accesses a declared method 'getDescriptor()' dynamically
Note: kotlin.coroutines.jvm.internal.ModuleNameRetriever accesses a declared method 'name()' dynamically
Note: kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion accesses a field 'SDK_INT' dynamically
Note: kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion accesses a field 'SDK_INT' dynamically
Note: kotlinx.coroutines.internal.FastServiceLoader accesses a declared constructor '<init>()' dynamically
Note: kotlinx.coroutines.internal.FastServiceLoader accesses a declared constructor '<init>()' dynamically
Note: kotlinx.coroutines.internal.FastServiceLoader accesses a declared constructor '<init>()' dynamically
Note: kotlinx.coroutines.internal.FastServiceLoader accesses a declared constructor '<init>()' dynamically
Note: the configuration refers to the unknown method 'void traceEventStart(int,java.lang.String)' in class 'androidx.compose.runtime.ComposerKt'
Note: the configuration keeps the entry point 'kotlinx.coroutines.CoroutineDispatcher { kotlinx.coroutines.CoroutineDispatcher plus(kotlinx.coroutines.CoroutineDispatcher); }', but not the descriptor class 'kotlinx.coroutines.CoroutineDispatcher'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.AwtFontManager$invalidate$2 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameDispatcher { FrameDispatcher(kotlinx.coroutines.CoroutineScope,kotlin.jvm.functions.Function1); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameDispatcher$job$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameLimiter { FrameLimiter(kotlinx.coroutines.CoroutineScope,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function0); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameLimiter { FrameLimiter(kotlinx.coroutines.CoroutineScope,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function0,int,kotlin.jvm.internal.DefaultConstructorMarker); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameLimiter$2 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameLimiter$awaitNextFrame$2 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.FrameWatcher$start$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayer$requestNativeFocusOnAccessible$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayerKt { org.jetbrains.skiko.FrameLimiter FrameLimiter(kotlinx.coroutines.CoroutineScope,org.jetbrains.skiko.HardwareLayer,kotlin.jvm.functions.Function1); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayerKt { org.jetbrains.skiko.FrameLimiter FrameLimiter$default(kotlinx.coroutines.CoroutineScope,org.jetbrains.skiko.HardwareLayer,kotlin.jvm.functions.Function1,int,java.lang.Object); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayerKt$FrameLimiter$2 { HardwareLayerKt$FrameLimiter$2(kotlinx.coroutines.channels.Channel,org.jetbrains.skiko.HardwareLayerKt$FrameLimiter$state$1,org.jetbrains.skiko.HardwareLayer,kotlin.jvm.functions.Function1,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.channels.Channel'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayerKt$FrameLimiter$2 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.HardwareLayerKt$FrameLimiter$3 { HardwareLayerKt$FrameLimiter$3(kotlinx.coroutines.channels.Channel,org.jetbrains.skiko.HardwareLayerKt$FrameLimiter$state$1); }', but not the descriptor class 'kotlinx.coroutines.channels.Channel'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.SwingDispatcher { void scheduleResumeAfterDelay(long,kotlinx.coroutines.CancellableContinuation); }', but not the descriptor class 'kotlinx.coroutines.CancellableContinuation'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.SwingDispatcher { void scheduleResumeAfterDelay$lambda-1(kotlinx.coroutines.CancellableContinuation,java.awt.event.ActionEvent); }', but not the descriptor class 'kotlinx.coroutines.CancellableContinuation'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.AbstractDirectSoftwareRedrawer$dispose$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.Direct3DRedrawer$draw$2$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.LinuxOpenGLRedrawer$dispose$3 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.MetalRedrawer$draw$2$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.SoftwareRedrawer$dispose$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'
Note: the configuration keeps the entry point 'org.jetbrains.skiko.redrawer.WindowsOpenGLRedrawer$Companion$frameDispatcher$1$1 { java.lang.Object invoke(kotlinx.coroutines.CoroutineScope,kotlin.coroutines.Continuation); }', but not the descriptor class 'kotlinx.coroutines.CoroutineScope'

cc @AlexeyTsvetkov we probably should exclude these warnings in the default ProGuard file.

@serhiynovos
Copy link

Getting the same error when run "packageReleaseDeb"

@changhexuefei
Copy link
Author

In version 1.2.1, using the packageReleaseMsi task, I still get the following error:

image

AlexeyTsvetkov added a commit to AlexeyTsvetkov/compose-jb that referenced this issue Nov 29, 2022
The following rule is needed to fix tests on Windows:
```
-dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet*
```

Other rules are just to make builds less noisy.
Kotlin's `*.internal` packages often contain
bytecode, which triggers ProGuard's notes.
However, these notes are not actionable for
most users, so we can ignore notes by default.

JetBrains#2393
AlexeyTsvetkov added a commit that referenced this issue Nov 29, 2022
The following rule is needed to fix tests on Windows:
```
-dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet*
```

Other rules are just to make builds less noisy.
Kotlin's `*.internal` packages often contain
bytecode, which triggers ProGuard's notes.
However, these notes are not actionable for
most users, so we can ignore notes by default.

#2393
AlexeyTsvetkov added a commit that referenced this issue Nov 30, 2022
* Update Gradle used in tooling subprojects

* Update Kotlin in Compose Gradle plugin

* Decrease verbosity of Gradle plugin tests

* Disable mac sign test

* Add workflow to test Gradle plugin

* Fix custom jdk tests on Linux

* Make Compose Gradle plugin build compatible with Configuration cache

* Print tests summary

* Remove unused code

* Refactor tests configuration

* Turn off parallel execution

* Try adding windows runner

* Turn off fail fast

* Fix Windows test issues

#2368

* Adjust default proguard rules

The following rule is needed to fix tests on Windows:
```
-dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet*
```

Other rules are just to make builds less noisy.
Kotlin's `*.internal` packages often contain
bytecode, which triggers ProGuard's notes.
However, these notes are not actionable for
most users, so we can ignore notes by default.

#2393
@lookup-cat
Copy link

Disabling proguard might fix this

compose.desktop {
    application {
        buildTypes.release.proguard {
            isEnabled.set(false)
        }
    }
}

@changhexuefei
Copy link
Author

Yes, this is useful, thank you@lookup-cat

@AlexeyTsvetkov
Copy link
Collaborator

@changhexuefei can you open the log file (Standard output log: FILE), and copy the content of that log file here?

@AlexeyTsvetkov
Copy link
Collaborator

Instead of disabling ProGuard, you can just use packageMsi. The only difference between them is whether the ProGuard is enabled (packageReleaseMsi == packageMsi + ProGuard )
However, there are better ways:

  • You can look in the log file (Standard output log: <FILE>) & either fix ProGuard warnings or ignore them by adding -dontwarn PROBLEMATIC_CLASS_OR_PACKAGE to your rules file.
  • Alternatively, you can simply add -dontwarn to your rules file.

igordmn pushed a commit that referenced this issue Dec 13, 2022
* Update Gradle used in tooling subprojects

* Update Kotlin in Compose Gradle plugin

* Decrease verbosity of Gradle plugin tests

* Disable mac sign test

* Add workflow to test Gradle plugin

* Fix custom jdk tests on Linux

* Make Compose Gradle plugin build compatible with Configuration cache

* Print tests summary

* Remove unused code

* Refactor tests configuration

* Turn off parallel execution

* Try adding windows runner

* Turn off fail fast

* Fix Windows test issues

#2368

* Adjust default proguard rules

The following rule is needed to fix tests on Windows:
```
-dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet*
```

Other rules are just to make builds less noisy.
Kotlin's `*.internal` packages often contain
bytecode, which triggers ProGuard's notes.
However, these notes are not actionable for
most users, so we can ignore notes by default.

#2393
# Conflicts:
#	gradle-plugins/gradle/wrapper/gradle-wrapper.properties
@changhexuefei
Copy link
Author

@igordmn
Copy link
Collaborator

igordmn commented Dec 13, 2022

@AlexeyTsvetkov, after this fix, there are still warnings in desktop-template and codeviewer:

Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/desktop.kotlin_module]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
...
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: there were 28 duplicate class definitions.
      (https://www.guardsquare.com/proguard/manual/troubleshooting#duplicateclass)
Note: the configuration refers to the unknown method 'void traceEventStart(int,java.lang.String)' in class 'androidx.compose.runtime.ComposerKt'

Maybe we should also skip them in the default configuration.

@AlexeyTsvetkov
Copy link
Collaborator

@igordmn it is impossible to add a rule, that ignores the duplicate resource file warning. ProGuard rules only allow ignoring warnings on classes and packages, but not on resources.
We can either:

  • Exclude META-INF/MANIFEST.MF from resulting jars completely, which technically should not break anything, but I'm not sure if it's right.
  • Filter these warnings out of the ProGuard's output.

@igordmn
Copy link
Collaborator

igordmn commented Dec 14, 2022

from resulting jars completely

I thought that this a warning because ProGuard tries to merge all jars into one big Jar? If that is the case, I don't see why it is wrong removing META-INF/desktop.kotlin_module and META-INF/MANIFEST.MF. It is just unused metadata that will be removed anyway after the merging (only one will remain). Do you have other thoughts?

I only know one case when we shouldn't remove resource files - when it is LICENSE or NOTICE, because the developer should do a conscience decision removing them from the native distribution.

The third option will be to add ability to exclude resources from the native distribution, and modify our examples (our examples should be without warnings). But if we can remove MANIFEST automatically, we should do that. Otherwise every application will face this issue and will have more boilerplate. It happens in Android, for example: https://stackoverflow.com/a/58745837

P.S. We also have traceEventStart. Can we do something about it?

igordmn added a commit that referenced this issue Dec 15, 2022
* Compose 1.2.1-rc01

* Fix Web build for Kotlin 1.7.20

* Use 1.3.2.1-rc02 in Gradle plugin

* Fix Gradle Plugin tests

* Fix Gradle Plugin tests

* Compose 1.2.1-rc03

* Update CHANGELOG.md

* Update CHANGELOG.md

* Compose Compiler 1.3.2.1

* Compose 1.2.1

* Update VERSIONING.md

* Update gradle.properties

* Fix custom JDK tests on Linux

* Remove JVM target version override (#2515)

Previously, we were setting kotlin.jvmTarget version
to 1.8 if it was null or < 1.8.
As an unintended consequence we were also overriding
a version set by the jvmToolchain property.
So while users expected the jvmToolchain property
to set both jdk home & jdk target, we were quietly
overriding jdk target.

At the same time, Kotlin 1.7 sets the minimum
target version to 1.8 anyway, so our override
does not make sense with Kotlin 1.7+.

This commit removes overriding altogether.

Fixes #2511

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update Compose

* Update default ProGuard rules with changes from main branch

* Test Gradle plugin on relevant PRs (#2509)

* Update Gradle used in tooling subprojects

* Update Kotlin in Compose Gradle plugin

* Decrease verbosity of Gradle plugin tests

* Disable mac sign test

* Add workflow to test Gradle plugin

* Fix custom jdk tests on Linux

* Make Compose Gradle plugin build compatible with Configuration cache

* Print tests summary

* Remove unused code

* Refactor tests configuration

* Turn off parallel execution

* Try adding windows runner

* Turn off fail fast

* Fix Windows test issues

#2368

* Adjust default proguard rules

The following rule is needed to fix tests on Windows:
```
-dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet*
```

Other rules are just to make builds less noisy.
Kotlin's `*.internal` packages often contain
bytecode, which triggers ProGuard's notes.
However, these notes are not actionable for
most users, so we can ignore notes by default.

#2393
# Conflicts:
#	gradle-plugins/gradle/wrapper/gradle-wrapper.properties

* Improve DSL for setting a custom Compose Plugin (#2527)

* Improve DSL for setting a custom Compose Plugin

Fixes #2459

Readme: #2526

1. Add `dependencies: Dependencies` extension that is accessible in `compose { }` block
2. Add `Dependencies.compiler` property that can return versions of Compose compiler used by the plugin:
```
compose {
    kotlinCompilerPlugin.set(dependencies.compiler.forKotlin("1.7.20"))
    //kotlinCompilerPlugin.set(dependencies.compiler.auto) // determined by applied version of Kotlin. It is a default.
}
```

3. Add ability to set arguments for Compose Compiler. Now we can write:
```
compose {
    kotlinCompilerPlugin.set(dependencies.compiler.forKotlin("1.7.20"))
    kotlinCompilerPluginArgs.add("suppressKotlinVersionCompatibilityCheck=1.7.21")
}
```

4. Remove checks for different targets

We had a separate check for JS, when we released 1.2.0. It doesn't support Kotlin 1.7.20 at that moment.

It is hard to refactor this feature in the new code, so I removed it. It is not needed now and it had an ugly code. When we will need it again, we'll write it again.

5. Remove the `compose.tests.androidx.compiler.version` property from gradle.properties and remove `defaultAndroidxCompilerEnvironment`

Because they are used only in one test, and it seems there is no reason to use it in another place in the future

* Discussions

* Update ComposeCompilerCompatability.kt (#2557)

* Update CHANGELOG.md

* 1.2.2-rc01

* Update Compose

* Update CHANGELOG.md

* Compose 1.2.2

* Remove shared.podspec

* Remove usages of deprecated Intellij APIs

Co-authored-by: Alexey Tsvetkov <alexey.tsvetkov@jetbrains.com>
Co-authored-by: Alexey Tsvetkov <654232+AlexeyTsvetkov@users.noreply.github.com>
@wakaztahir
Copy link

Warnings not letting me release , version Compose 1.3.0 , Kotlin 1.8.0

ProGuard, version 7.2.2
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/desktop.kotlin_module]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: duplicate definition of resource file [META-INF/MANIFEST.MF]
Note: there were 56 duplicate class definitions.
      (https://www.guardsquare.com/proguard/manual/troubleshooting#duplicateclass)
Note: kotlinx.serialization.internal.PlatformKt calls 'Class.getAnnotation'
Note: kotlinx.serialization.internal.PlatformKt calls 'Field.getType'
Warning: org.slf4j.LoggerFactory: can't find referenced class org.slf4j.impl.StaticLoggerBinder
Warning: org.slf4j.LoggerFactory: can't find referenced class org.slf4j.impl.StaticLoggerBinder
Warning: org.slf4j.LoggerFactory: can't find referenced class org.slf4j.impl.StaticLoggerBinder
Warning: org.slf4j.LoggerFactory: can't find referenced class org.slf4j.impl.StaticLoggerBinder
Warning: org.slf4j.LoggerFactory: can't find referenced class org.slf4j.impl.StaticLoggerBinder
Warning: org.slf4j.MDC: can't find referenced class org.slf4j.impl.StaticMDCBinder
Warning: org.slf4j.MDC: can't find referenced class org.slf4j.impl.StaticMDCBinder
Warning: org.slf4j.MDC: can't find referenced class org.slf4j.impl.StaticMDCBinder
Warning: org.slf4j.MDC: can't find referenced class org.slf4j.impl.StaticMDCBinder
Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder
Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder
Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder
Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder
Note: com.ibm.icu.impl.LocaleDisplayNamesImpl$DataTables calls '(com.ibm.icu.impl.LocaleDisplayNamesImpl$DataTables)Class.forName(variable).newInstance()'
Note: com.ibm.icu.text.TimeZoneNames calls '(com.ibm.icu.text.TimeZoneNames$Factory)Class.forName(variable).newInstance()'
Note: com.ibm.icu.impl.Relation accesses a constructor '<init>()' dynamically
Note: com.ibm.icu.impl.Relation accesses a constructor '<init>(java.util.Comparator)' dynamically
Note: com.ibm.icu.text.LocaleDisplayNames accesses a method 'getInstance(com.ibm.icu.util.ULocale,com.ibm.icu.text.LocaleDisplayNames$DialectHandling)' dynamically
Note: com.ibm.icu.text.LocaleDisplayNames accesses a method 'getInstance(com.ibm.icu.util.ULocale,com.ibm.icu.text.DisplayContext[])' dynamically
Note: com.ibm.icu.text.RuleBasedCollator accesses a constructor '<init>(com.ibm.icu.impl.coll.CollationTailoring)' dynamically
Note: com.ibm.icu.text.RuleBasedCollator accesses a method 'parseAndBuild(java.lang.String)' dynamically
Note: com.ibm.icu.util.ULocale$JDKLocaleHelper accesses a method 'name()' dynamically
Note: kotlinx.serialization.internal.PlatformKt accesses a field 'INSTANCE' dynamically
Note: kotlinx.serialization.internal.PlatformKt accesses a declared field 'Companion' dynamically
Note: org.slf4j.helpers.SubstituteLogger accesses a method 'log(org.slf4j.event.LoggingEvent)' dynamically
Warning: there were 13 unresolved references to classes or interfaces.
         You may need to add missing library jars or update their versions.
         If your code works fine without the missing classes, you can suppress
         the warnings with '-dontwarn' options.
         (https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedclass)
Unexpected error
java.io.IOException: Please correct the above warnings first.
	at proguard.Initializer.execute(Initializer.java:544) ~[proguard-base-7.2.2.jar:7.2.2]
	at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.2.2.jar:7.2.2]
	at proguard.ProGuard.initialize(ProGuard.java:328) ~[proguard-base-7.2.2.jar:7.2.2]
	at proguard.ProGuard.execute(ProGuard.java:130) ~[proguard-base-7.2.2.jar:7.2.2]
	at proguard.ProGuard.main(ProGuard.java:623) [proguard-base-7.2.2.jar:7.2.2]

@wakaztahir
Copy link

-ignorewarnings Worked

@PMARZV
Copy link

PMARZV commented Mar 15, 2024

@wakaztahir where did you put the -ignorewarnings ? im having the exact same problem and i cant find any answer without deactivating obfuscation (which i dont want)

@wakaztahir
Copy link

@PMARZV in the proguard file

@PMARZV
Copy link

PMARZV commented Mar 16, 2024

But does it have to be put for every class that its giving a warning or just put it once without specifying class?? Thank you in advance @wakaztahir

@wakaztahir
Copy link

just once

@okushnikov
Copy link
Collaborator

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants