[
https://issues.apache.org/jira/browse/AVRO-2863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17397934#comment-17397934
]
Ryan Skraba commented on AVRO-2863:
-----------------------------------
Conversation on user@ mailing list
[here|https://lists.apache.org/thread.html/r47e0056fa90c4fd3c808c500e834a01cebca66cd30e9ef6122e220e7%40%3Cuser.avro.apache.org%3E].
It looks like there's two parts to this problem: (1) getting the core avro
functionality in a usable state for the android platform and (2) validating
that this remains true.
If (1) can be done by making the changes suggested in this JIRA, it looks like
a very reachable and interesting goal for 1.11.x !
> Avro 1.9.2 Java library does not work on Android
> ------------------------------------------------
>
> Key: AVRO-2863
> URL: https://issues.apache.org/jira/browse/AVRO-2863
> Project: Apache Avro
> Issue Type: Wish
> Components: java
> Affects Versions: 1.9.0, 1.9.1, 1.9.2
> Environment: Android 5.0.2 (API 21) up to the latest Android version,
> using Android Gradle plugin version 4.0.0.
> Reporter: Joris Borgdorff
> Priority: Major
>
> One of our Android apps uses Avro to communicate with the server. Up to
> vision 1.8.2, it used a subset of the Avro library that was needed to perform
> this communication. It does not use any of the compress codecs and keeps the
> use of reflection to a minimum. Since Avro 1.9.0 a few blocking
> incompatibilities have been introduced. This prevents us from using any of
> the developments in Avro version 1.9.x, including the updated Jackson
> dependency.
> org.apache.avro.Schema uses ThreadLocal.withInitial, only available with
> Android API 26 (Android 8.0)
> org.apache.avro.reflect.ReflectUtils uses Method.invokeExact, not available
> on Android
> org.apache.avro.reflect.ReflectData uses java.lang.ClassValue, not available
> on Android
> I've experimented with excluding the org.apache.avro.reflect from the
> distribution (except MapEntry, which is used elsewhere) and providing my own
> java.lang.ClassValue implementation. This resolves all build and runtime
> issues for Android API 26 and above except for ThreadLocal.withInitial, which
> cannot be circumvented.
> For now the Android app will keep using 1.8.2, but we would prefer to use
> 1.9.2 or later.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)