[ 
https://issues.apache.org/jira/browse/AVRO-2863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Skraba closed AVRO-2863.
-----------------------------

> [Java] Support avro core functionality 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
>            Assignee: Ryan Skraba
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.11.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> 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)

Reply via email to