0

I have developed an application that runs on a zebra TC70. The main reason for this is that this device has a built-in 2D barcode scanner.

Now I want to also publish the same app in the app store without the zebra requirement. I have built in a check that checks if the device is a zebra device or not (as described here by Zebra)

Now when I build this app on a doogee s60, this works without a problem. The app uses the camera instead of the barcode scanner. When I want to install in on my Sony Xperia XZ Premiumn, I get the following error in android studio enter image description here

Now I am not really familiar with "ABIS" in android. I tried some googeling and this gave me hints to split APKs per CPU model but I don't get that working.

The end goal is that I can get this app working on "every" android device without having to copy all my code into a second project without the zebra jar.

Android manifest

  • Min SDK: 16
  • Target SDK: 19
  • Zebra device I have run Android 4.4 or android 5.1
  • uses-permission android:name="com.symbol.emdk.permission.EMDK"

build.grade (app)

  • provided fileTree(include: ['com.symbol.emdk.jar'], dir: 'libs') // this needs to be provided as else the app won't build

End status:

  • TC70: app is working with the built-in scanner
  • Doogee S60: app is working with the camera
  • Sony Xperia XZ Premium: app fails to build with error.
Delphi Coder
  • 1,723
  • 1
  • 14
  • 25
Boeykes
  • 137
  • 2
  • 9
  • I'm not positive, but I believe the 'ABIS' refers to the binary interface. When you run native code on a processor/platform it has to adhere to the binary interface spec. Do a search/verification on what I'm asserting here - it might be as simple as adding an additional library (maybe in the form of a static library, etc.) but you'll need to reach out to the Xperia community no doubt. – BonanzaDriver May 14 '18 at 17:51
  • https://stackoverflow.com/questions/28100291/how-to-target-different-android-architectures – James Poag May 14 '18 at 17:53

1 Answers1

1

I finally found the answer.

Apparently it was just one specific library.

I replaced:

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'

by:

compile group: 'commons-io', name: 'commons-io', version: '2.5'

and this fixed my issue. It was not related to the zebra library. Also: implementation group: 'commons-io', name: 'commons-io', version: '2.5' //Works.

Thanks to "sweisgerber.dev" in this post INSTALL_FAILED_NO_MATCHING_ABIS error on Android 8 as it fixed the issue

Boeykes
  • 137
  • 2
  • 9