distriqt / ANE-GooglePlayServices

Shared library including the Google Play Services Client Library
https://airnativeextensions.com
18 stars 1 forks source link

protobuf-lite #11

Closed amodo-dev closed 4 years ago

amodo-dev commented 4 years ago

Is it possible to remove protobuf-lite-3.0.1.jar from com.google.firebase.core.ane or create another version without?

We are using com.google.protobuf:protobuf-java:3.11.1 in our ane, and protobuf-lite is not enough. AIR app without included Firebase / com.google.firebase.core.ane works fine. In other case: Rejecting re-init on previously-failed class java.lang.Class<b.a.a$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/protobuf/GeneratedMessageV3;

Thank you

marchbold commented 4 years ago

Hi, Can you provide me with a test case at all so I can make sure it works for you?

We try to minimise the number of extensions user's have to add but understand the need to split up dependencies.

marchbold commented 4 years ago

If it's confidential send it to airnativeextensions@distriqt.com

amodo-dev commented 4 years ago

Unfortunately, I can't give you an example because our ane is private and it's hard to set everything up to work. As far as I know, Firebase RemoteConfig uses protobuf, I don't know if it's needed for Firebase, Crashlythics, Analytics (common parts).
I have experience with ReactNative wrapper for our SDK, and there we stripped protobuf part from SDK for one client because RemoteConfig has it included.

EDIT Solution 2: Include com.google.protobuf:protobuf-java:3.11.1 instead of lite version?

marchbold commented 4 years ago

A few of the firebase extensions use it which is why its in the common core library.

I'll look into alternatives for you. We could separate it out into another dependency as a last resort.

amodo-dev commented 4 years ago

Thank you!

marchbold commented 4 years ago

Here are some updates for you to try.

I've split out the protobuf dependency, it's now in com.google.protobuflite in the Android support libs:

https://www.dropbox.com/s/qjot5g0ywpq55vw/com.distriqt.AndroidSupport.v...zip?dl=0

I've removed this dependency from the firebase core ane in the google play services libs:

https://www.dropbox.com/s/eu7p4cjdnyo8hto/com.distriqt.GooglePlayServices.v...zip?dl=0

Let me know how this goes for you. I cannot guarantee this will work for you, as everything I have read has said you should use lite on Android and several of the firebase ANE have this lite version as a dependency.

marchbold commented 4 years ago

This is now released .