QuickLyric / fpcalc-android

Use chromaprint library easily on Android with fpcalc-android
Other
13 stars 6 forks source link

Doesn't work on Android Emulator x86_64 #7

Open Kaned1as opened 5 years ago

Kaned1as commented 5 years ago

Surprisingly, this doesn't seem to be working on Android Emulator x86_64, but works normally on real phone with aarch64.

Update: checked armv7 and x86 emulators, works there too. Seems like only x86_64 libraries are affected.

Context: OS: tried on Android 7.0 and Android 8.1 Versions: tried both 1.0.1 and 1.0.2b Languages: tried on Java and Kotlin Architectures: works on armv7, aarch64, x86 but doesn't work on x86_64

@geecko86 @svenoaks please take a look

geecko86 commented 5 years ago

Hi,

I'm gonna need more info. Which release are you running? Did you compile it yourself? Which version of Android? etc.

I just ran a unit test on a x86_64 emulator and fpcalc works as intended.

Kaned1as commented 5 years ago

Hi geecko!

I didn't compile it myself. I tried releases 1.0.1 and 1.0.2b from this repo.

Versions: tried on Android 7.0 and Android 8.1 Languages: tried on Java and Kotlin

image

I just ran a unit test on a x86_64 emulator and fpcalc works as intended.

you mean, instrumented test, right? unit-tests run on your host system.

Kaned1as commented 5 years ago

Tried on x86 KitKat and it works.

Maybe Google broke something again, like text relocations after Lollipop?

geecko86 commented 5 years ago

implementation 'com.github.QuickLyric:fpcalc-android:1.0.2b'

This is what we use in production, including on x86 emulators. If those binaries don't work for you I can't really think of why...

geecko86 commented 5 years ago

You are getting a system error explicitly saying something is wrong with the native libs, right?

Kaned1as commented 5 years ago

No, it just spits out nulls. I'm using the same version. I'm using emulators without Google APIs, can this be the reason?

Since you're here, can we hang out in IRC or Matrix or Signal or Telegram or Skype maybe? I'm all for digging up the cause.

geecko86 commented 5 years ago

No I'm going out tonight (and also I'm not handling support for this repo).

But from the looks of it, it doesn't seem to be an issue with the binaries, rather with how you're using them. Perhaps it can't find the path you're giving it?

Kaned1as commented 5 years ago

Perhaps it can't find the path you're giving it?

No. In that case it says ERROR in the output. The file is totally there. Besides it works in armv7 and aarch64 with exact same paths.

Kaned1as commented 5 years ago

Okay @geecko86 , thanks for your help anyway. I collected all the facts we dug out in the initial bug description.

geecko86 commented 5 years ago

I have actually been able to reproduce this issue recently. Seems like I was actually using a x86 emulator on a x86_64 system when I first replied to you.

Sorry!

I will investigate this when I have some more time. In the mean time, a temporary workaround is to exclude all the x86_64 binaries in your build.gradle files. Using x86 binaries on the x86_64 emulator works fine.

I did just that in 42b4fde.

Kaned1as commented 5 years ago

Thanks! I'm already using it in my plugin for Vanilla Music so it'd be perfect!