shevek / jarjar

Jar Jar Links is a utility that makes it easy to repackage Java libraries and embed them into your own distribution.
Apache License 2.0
735 stars 93 forks source link

Repackaging in Android AAR #27

Open herriojr opened 2 years ago

herriojr commented 2 years ago

I get an error when trying to compile my project using jarjar:

Caused by: org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreationException: Could not create task ':mysdk:jarjar-1'.
    at org.gradle.api.internal.tasks.DefaultTaskContainer.taskCreationException(DefaultTaskContainer.java:715)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.access$600(DefaultTaskContainer.java:76)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:303)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
    at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.doCreate(DefaultTaskContainer.java:292)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:278)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:361)
    at org.anarres.gradle.plugin.jarjar.JarjarController.repackage(JarjarController.java:47)
    at org.anarres.gradle.plugin.jarjar.JarjarController.repackage(JarjarController.java:56)
    at org.anarres.gradle.plugin.jarjar.JarjarController$repackage.call(Unknown Source)
    at build_cdx3zyz8xceek7riplsi3ular$_run_closure5.doCall(/Users/myuser/Projects/mysdk/mysdk/build.gradle:133)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:72)
    at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.internal.ConfigureUtil.configure(ConfigureUtil.java:106)
    at org.gradle.api.internal.project.DefaultProject.dependencies(DefaultProject.java:1236)
    at jdk.internal.reflect.GeneratedMethodAccessor215.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
    at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:135)
    at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
    at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:84)
    at build_cdx3zyz8xceek7riplsi3ular.run(/Users/myuser/Projects/mysdk/mysdk/build.gradle:89)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    ... 148 more
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'JarjarTask'.
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:95)
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:82)
    at org.gradle.util.internal.GUtil.uncheckedCall(GUtil.java:454)
    at org.gradle.api.internal.AbstractTask.injectIntoNewInstance(AbstractTask.java:204)
    at org.gradle.api.internal.project.taskfactory.TaskFactory.create(TaskFactory.java:82)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory.create(AnnotationProcessingTaskFactory.java:48)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.createTask(DefaultTaskContainer.java:322)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.access$200(DefaultTaskContainer.java:76)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:296)
    ... 184 more
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/commons/RemappingClassAdapter
    at com.tonicsystems.jarjar.transform.jar.DefaultJarProcessor.<init>(DefaultJarProcessor.java:35)
    at org.anarres.gradle.plugin.jarjar.JarjarTask.<init>(JarjarTask.java:98)
    at org.anarres.gradle.plugin.jarjar.JarjarTask_Decorated.<init>(Unknown Source)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at org.gradle.internal.instantiation.generator.AsmBackedClassGenerator$InvokeConstructorStrategy.newInstance(AsmBackedClassGenerator.java:2070)
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl.newInstance(AbstractClassGenerator.java:486)
    at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:64)
    at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstanceWithDisplayName(DependencyInjectingInstantiator.java:50)
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:88)
    ... 192 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.commons.RemappingClassAdapter
    ... 203 more

My gradle module looks something like:

build.gradle:

buildscript {
    dependencies {
        classpath 'org.anarres.jarjar:jarjar-gradle:1.0.1'
    }
}

plugins {
    id 'com.android.application' version '7.1.0' apply false
    id 'com.android.library' version '7.1.0' apply false
}

allprojects {
    apply plugin: 'org.anarres.jarjar'
}

module/build.gradle

...
dependencies {
    implementation jarjar.repackage {
        from 'source.package.to.repackage'
    }
}
junebeans commented 1 year ago

@herriojr You might want to refer to this thread https://github.com/shevek/jarjar/issues/22