рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ рдФрд░ рдЪрд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдЧреНрд░реИрдбрд▓ - рд░реАрдкреИрдХреЗрдЬрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд░ рдХреЛрдИ рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдУрд╡рд░рдлрд╝рд┐рдХреНрд╕ рдХрд░реЗрдВ:
configurations.all { resolutionStrategy { force "org.ow2.asm:asm:7.2" } }
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдХреБрдЫ htc рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ gson рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ gson рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ ClassLoader рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╣реЛрдЧрд╛ред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ 2 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1 рдФрд░ 2, рддреЛ рдЧреНрд░реИрдбрд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╣рд▓ рдФрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рджреВрд╕рд░рд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреЛрдИ рдмреИрдХрд╡рд░реНрдб рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдирд╣реАрдВ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рд╡рд░реНрдЬрди рдХреЛ рдкрд╣рд▓реЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рд░реНрдл рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯреНрд░реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рджреВрд╕рд░реА рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА рдФрд░ рдмрд╕ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред
рдореБрдЭреЗ рдПрдХ рдЧреНрд░реЗрдб рд╕рдВрдШрд░реНрд╖ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрдм рдПрдХ рдЧреНрд░реИрдбрд┐рдПрдВрдЯ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛, рдпрд╣ рдПрдПрд╕рдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╡рд╛рджрд┐рдд рдерд╛ред рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреА: рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдПрдХ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЬрд╛рдБрдЪ рдХреА, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рд╛, рддреЛ рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред

рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рдиред
рдлрд┐рд░ рднреА рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ?
рд╣рдореЗрдВ рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐ рдЯреНрд░реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ:

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ asm ClassVisitor
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рддреНрд░реБрдЯрд┐ рд▓рд╛рдЗрди 79 рдкрд░ рд╣реИред рдЖрдЗрдП рд╡рд╣рд╛рдВ рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди ClassVisitor
рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ 2 рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдП

рдореЗрд░рд╛ рдкреНрд▓рдЧрдЗрди asm рд╕рдВрд╕реНрдХрд░рдг 7.2
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд▓рд╛рдЗрди 79 рдкрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрддреЗ рд╣реИрдВ:

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм ClassVisitor
рд╕рдВрд╕реНрдХрд░рдг 6 рдкрд░ рдЬрд╛рдПрдВ:

рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд┐рдирд╛ рдмрд╕ рд╣рдорд╛рд░реЗ IllegalArgumentException
ред рдореЗрд░рд╛ рдкреНрд▓рдЧрдЗрди Opcodes.ASM7
рдХреЗ ASM рдПрдкреАрдЖрдИ 7 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ 6 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдПрдкреАрдЖрдИ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдПрдХ Opcodes.ASM7
рдореЗрдВ Opcodes.ASM7
рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЧрд▓рдд рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реИред
рдХрдЪрд░рд╛ рд╕рд╡рд╛рд▓, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдФрд░ рдпрд╣ рдХрд┐рдпрд╛:
configurations.all { resolutionStrategy { force "org.ow2.asm:asm:7.2" } }
рдореЗрд░реЗ рдЕрдлрд╕реЛрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдЯреАрдХ рдХрд╛рд░рдг рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ asm рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдУрд╡рд░рдлрд╝рд┐рдХреНрд╕ рдХрд░рдирд╛ рдХреНрдпреЛрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ ./gradlew app:dependencies
рдХрдорд╛рдВрдб рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 7.2 рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рд░рд╛рдп рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЧреЛрдореБрдЦ рдФрд░ рдУрд▓реЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдЧрд╣рд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рд╢реБрд░реВ рд╣реБрдЖред рдирддреАрдЬрддрди, рдореИрдВ asm рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЧрдпрд╛, рд╢рд╛рдпрдж рд╡реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдерд╛ред рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдПрд╕рдПрдо рдкреИрдХреЗрдЬ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдмрд╕ рдкреНрд▓рдЧ-рдЗрди рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдереЛрдбрд╝рд╛ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
apply plugin: 'org.anarres.jarjar' ... dependencies { implementation fileTree(dir: 'build/jarjar', include: ['*.jar']) implementation jarjar.repackage('asm') { from 'org.ow2.asm:asm:7.2' classRename "org.objectweb.asm.**", "stater.org.objectweb.asm.@1" } }
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ build/jarjar
, рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ build/jarjar
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рд░ рдлрд╛рдЗрд▓ рдХреЛ рд░реАрдкреИрдХреЗрдЬреЗрдб рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ fileTree
рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдм рдЖрдпрд╛рдд stater.org.objectweb.asm.*
рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ stater.org.objectweb.asm.*
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп org.objectweb.asm.*
ред рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдмрд╕ рдкреИрдХреЗрдЬ рдмрджрд▓рдирд╛ рдХрд╛рдлреА рдерд╛ред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ org.objectweb.asm
рд╕реЗ рд╣рд░ рдЬрдЧрд╣ рдЖрдпрд╛рдд рдмрджрд▓реЗрдВ
stater.org.objectweb.asm
ред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рдХрд░рдиреЗ рд╕реЗ рдХрдИ рдмрд╛рд░ рдЖрд╕рд╛рди рд╣реИ, рдЦрд╛рд╕рдХрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдмрд╕ from 'org.ow2.asm:asm:7.2'
рд╕реЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде from 'org.ow2.asm:asm:7.2'
рдЬрд╛рд░ рдЙрдкрдирд╛рдо рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд╢реАрдиред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ), рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдШреБрд▓рдирд╢реАрд▓ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЧрдиреНрд╕ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк, рдореЗрд░реА рддрд░рд╣, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред
рд╣рдордиреЗ рд░реАрдкреИрдХреЗрдЬрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм asm
рд░рд┐рдореЛрдЯ рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕реНрдерд╛рдиреАрдп рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ asm
рдЬреБрдбрд╝рд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╕ рддрдм рдЦреЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рд╣реЛрдЧреА рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ NoClassDefFoundError
рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
рд╣рдорд╛рд░реА рд╢реНрд░реЗрдгреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ:
configurations { extraLibs implementation.extendsFrom(extraLibs) }
рдЖрдЧреЗ рд╣рдо рдмрджрд▓рддреЗ рд╣реИрдВ
implementation fileTree(dir: 'build/jarjar', include: ['*.jar'])
рдкрд░
extraLibs fileTree(dir: 'build/jarjar', include: ['*.jar'])
рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреА рдЕрдВрддрд┐рдо рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдЬрд╛рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВ:
jar { from { configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } } }
рдпрд╣ рд╕рдм рд╣реИ, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣рдорд╛рд░реЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ, рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЕрдХрд▓реНрдкрдиреАрдп рд╕рдВрдШрд░реНрд╖ рдереЗ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд░реАрдкреИрдХреЗрдЬрд┐рдВрдЧ рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЕрдзрд┐рдХ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдмрдирд╛ рджреЗрддреА рд╣реИред
рдФрд░ рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдл рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рдирд╛ рд░реАрдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ?
рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░, рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдХреА check...DuplicateClasses
, рдЬреЛ рдмрд╕ рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдХрдиреЗрдХреНрдЯреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЬрд╛рд░ рдлрд╛рдЗрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдлрд╛рдЗрд▓ред рдкрд░рд┐рдгрд╛рдо рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА:

рд╡рд╣ рд╕рдм рд╣реИред рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддреБрд▓рд╕рд╛
рдЙрджрд╛рд╣рд░рдг рдкреНрд▓рдЧрдЗрди