Seems simpler to fix the Gradle plugin(s) for Android honestly.

On 8 July 2017 at 21:26, Gary Gregory <garydgreg...@gmail.com> wrote:

> I say we keep it simple: Deliver log4j-api-java9 as an add-on to log4j-api
> instead of being clever with log4j-api embedding Java 9 classes a la
> Titanic.
>
> Thoughts?
>
> Gary
>
> On Sat, Jul 8, 2017 at 7:10 PM, Gary Gregory <garydgreg...@gmail.com>
> wrote:
>
> > I do not think that is how Android development works. The .class files
> are
> > converted to .dex files from what I can tell, a different byte code
> format
> > used by both Dalvik (discontinued) and ART.
> >
> > Gary
> >
> > On Sat, Jul 8, 2017 at 6:15 PM, Apache <ralph.go...@dslextreme.com>
> wrote:
> >
> >> Is it trying to process the class files generated by java? I thought
> >> Android compiled Java source.  If it is looking at class files then it
> >> needs to ignore everything under META-INF
> >>
> >> Sent from my iPad
> >>
> >> > On Jul 8, 2017, at 5:58 PM, Gary Gregory <garydgreg...@gmail.com>
> >> wrote:
> >> >
> >> > We are worst off with our 2.9-SNAPSHOT, I can't even build an app
> using
> >> > only log4j-api:
> >> >
> >> > AGPBI: {"kind":"error","text":"Error converting bytecode to
> dex:\nCause:
> >> > Dex cannot parse version 53 byte code.\nThis is caused by library
> >> > dependencies that have been compiled using Java 8 or above.\nIf you
> are
> >> > using the \u0027java\u0027 gradle plugin in a library submodule add
> >> > \ntargetCompatibility \u003d \u00271.7\u0027\nsourceCompatibility
> >> \u003d
> >> > \u00271.7\u0027\nto that submodule\u0027s build.gradle
> >> > file.","sources":[{}],"original":"UNEXPECTED TOP-LEVEL
> >> > EXCEPTION:\njava.lang.RuntimeException: Exception parsing
> classes\n\tat
> >> > com.android.dx.command.dexer.Main.processClass(Main.java:781)\n\tat
> >> > com.android.dx.command.dexer.Main.processFileBytes(Main.
> java:747)\n\tat
> >> > com.android.dx.command.dexer.Main.access$1200(Main.java:88)\n\tat
> >> > com.android.dx.command.dexer.Main$FileBytesConsumer.processF
> >> ileBytes(Main.java:1689)\n\tat
> >> > com.android.dx.cf.direct.ClassPathOpener.processArchive(Clas
> >> sPathOpener.java:284)\n\tat
> >> > com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPat
> >> hOpener.java:166)\n\tat
> >> > com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOp
> >> ener.java:144)\n\tat
> >> > com.android.dx.command.dexer.Main.processOne(Main.java:695)\n\tat
> >> > com.android.dx.command.dexer.Main.processAllFiles(Main.
> java:592)\n\tat
> >> > com.android.dx.command.dexer.Main.runMultiDex(Main.java:376)\n\tat
> >> > com.android.dx.command.dexer.Main.run(Main.java:290)\n\tat
> >> > com.android.builder.internal.compiler.DexWrapper.run(DexWrap
> >> per.java:54)\n\tat
> >> > com.android.builder.core.DexByteCodeConverter.lambda$dexInPr
> >> ocess$0(DexByteCodeConverter.java:174)\n\tat
> >> > java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat
> >> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
> >> Executor.java:1142)\n\tat
> >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
> >> lExecutor.java:617)\n\tat
> >> > java.lang.Thread.run(Thread.java:745)\nCaused by:
> >> > com.android.dx.cf.iface.ParseException: bad class file magic
> >> (cafebabe) or
> >> > version (0035.0000)\n\tat
> >> > com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassF
> >> ile.java:476)\n\tat
> >> > com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFi
> >> le.java:406)\n\tat
> >> > com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIf
> >> Necessary(DirectClassFile.java:388)\n\tat
> >> > com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClas
> >> sFile.java:251)\n\tat
> >> > com.android.dx.command.dexer.Main.parseClass(Main.java:793)\n\tat
> >> > com.android.dx.command.dexer.Main.access$1600(Main.java:88)\n\tat
> >> > com.android.dx.command.dexer.Main$ClassParserTask.call(Main.
> >> java:1728)\n\tat
> >> > com.android.dx.command.dexer.Main.processClass(Main.java:779)\n\t...
> 16
> >> > more\n","tool":"Dex"}
> >> > AGPBI: {"kind":"error","text":"1 error; aborting","sources":[{}]}
> >> >
> >> > Can we split off this Java 9 stuff in a separate module?
> >> >
> >> > Gary
> >> >
> >> >> On Sat, Jul 8, 2017 at 4:01 PM, Matt Sicker <boa...@gmail.com>
> wrote:
> >> >>
> >> >> If you've got some instructions on how to even get an Android project
> >> up
> >> >> and running, getting some test code to play with would certainly
> help.
> >> Long
> >> >> ago when I tried debugging some Android issues with Log4j, I couldn't
> >> even
> >> >> get that far. :/
> >> >>
> >> >>> On 8 July 2017 at 17:31, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >> >>>
> >> >>> A quick follow up to note that with 2.8.2, using log4j-api does not
> >> cause
> >> >>> problems but then adding log4j-core causes the app to fail to start.
> >> So I
> >> >>> definitively see an Android epic for 2.10. Maybe this is when we
> want
> >> to
> >> >>> split up log4j-core.
> >> >>>
> >> >>> Gary
> >> >>>
> >> >>> On Sat, Jul 8, 2017 at 3:20 PM, Gary Gregory <
> garydgreg...@gmail.com>
> >> >>> wrote:
> >> >>>
> >> >>>> So here I am with my family our of town on a weekend, and I thought
> >> I'd
> >> >>>> give Log4j on Android a try.
> >> >>>>
> >> >>>> The first thing I run into is:
> >> >>>>
> >> >>>> FAILURE: Build failed with an exception.
> >> >>>>
> >> >>>> * What went wrong:
> >> >>>> Execution failed for task ':Application:transformResourc
> >> esWithMergeJav
> >> >>>> aResForDebug'.
> >> >>>>> com.android.build.api.transform.TransformException:
> >> >>>> com.android.builder.packaging.DuplicateFileException: Duplicate
> >> files
> >> >>>> copied in APK META-INF/LICENSE
> >> >>>> File1: C:\Users\ggregory\.gradle\caches\modules-2\files-2.1\
> >> >>>> org.apache.logging.log4j\log4j-core\2.8.2\
> >> >> 979fc0cf8460302e4ffbfe38c1b66a
> >> >>>> 99450b0bb7\log4j-core-2.8.2.jar
> >> >>>> File2: C:\Users\ggregory\.gradle\caches\modules-2\files-2.1\
> >> >>>> org.apache.logging.log4j\log4j-api\2.8.2\
> >> >> e590eeb783348ce8ddef205b82127f
> >> >>>> 9084d82bf3\log4j-api-2.8.2.jar
> >> >>>>
> >> >>>>
> >> >>>> * Try:
> >> >>>> Run with --stacktrace option to get the stack trace. Run with
> --info
> >> or
> >> >>>> --debug option to get more log output.
> >> >>>>
> >> >>>> BUILD FAILED
> >> >>>>
> >> >>>> Total time: 1.995 secs
> >> >>>>
> >> >>>> which is solved by:
> >> >>>>
> >> >>>> https://stackoverflow.com/questions/37586800/android-
> >> >>>> gradle-duplicate-files-copied-in-apk-meta-inf-license-txt
> >> >>>>
> >> >>>> Which means I have to add this to my build:
> >> >>>>
> >> >>>> packagingOptions {
> >> >>>>    exclude 'META-INF/DEPENDENCIES'
> >> >>>>    exclude 'META-INF/LICENSE'
> >> >>>> }
> >> >>>>
> >> >>>> I wonder if we should generate these files pretending we are in an
> >> uber
> >> >>> jar, either:
> >> >>>>
> >> >>>> - with the project name in the name like META-INF/log4j2.LICENSE
> >> >>>>
> >> >>>> - with maven AID in the name like META-INF/log4j-api.LICENSE
> >> >>>>
> >> >>>> - with maven coords in the name like META-INF/org.apache.logging.
> >> >>> log4j-log4j-api.LICENSE
> >> >>>>
> >> >>>> As an aside files like LICENSE and NOTICE do not have .txt
> extensions
> >> >>> which is lame IMO.
> >> >>>>
> >> >>>> Ignore and do nothing? Thoughts?
> >> >>>>
> >> >>>> Gary
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Matt Sicker <boa...@gmail.com>
> >> >>
> >>
> >>
> >>
> >
>



-- 
Matt Sicker <boa...@gmail.com>

Reply via email to