1

I was working on an old app I have (I started it on 4.0), and I am facing some issues after upgrading my nexus 5x to Oreo (8.0).

My Nexus 5x is a x86 device, and everytime I try to install this apk for debug porpuses I get the so called error "INSTALL_FAILED_NO_MATCHING_ABIS". I had never faced this problem before so I started to look for information and the only thing I found that could be useful was:

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}

In my build.gradle file.

However this did not work, in order to make sure that the problem was the 8.0 and not another external factor, I created a virtual nexus 5x with Nougat (7.1) and it runs ok, but when I upgrade the virtual device to 8.0 I face the same ABI error.

My app does not use grade in its full potential (is really old), but I have this version of the plugin:

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

}

My current version of Android Studio is 2.3.3, I have not updated yet to 3.0 as it is in beta phase.

I also have installed the Intel x86 Emulator Accelerator (HAXM installer) v 6.2.1

Any indications will be apreciated

Thanks in advance

zozelfelfo
  • 3,776
  • 2
  • 21
  • 35
  • Have you tried adding arm64-v8a to your include list? – WoogieNoogie Sep 18 '17 at 20:37
  • @WoogieNoogie I have just tried, with the same result :( – zozelfelfo Sep 18 '17 at 21:01
  • I don't get it, you said "My Nexus 5x is a x86 device", is this an emulator or the real physical device? The physical device has a Qualcomm Snapdragon 808 which is arm v8 processor. My understanding is probably before you update to Oreo, the device was applying compatibility logic and using the ```armeabi-v7a``` compiled code, once it got updated it probably lost this ability and now enforces ```arm64-v8a``` which your code is not compiled for, hence the error. Now for the emulator, if your using x86_64 image of Android Nougat, probably the same thing as it is not being compiled for too. – ahasbini Sep 19 '17 at 22:01
  • OK I see @ahasbini, sorry for the misunderstanding, I thought that my device (phyiscal one) was a x86 device, because the emulator created a virtual device (Nexus 5x) and it was a x86 device (according to android studio), that is why i supposed that my device had the same architecture. However neither the emulated device nor the phyiscal one is able to run the application.I will try to use arm68-v8a again, and I run some tests again. Thank you – zozelfelfo Sep 20 '17 at 06:26
  • @ahasbini I had tried with arm64-v8a and it still doesnt work. What I do not get is why I have to specify an ABI when I am using the android SDK (i have looked in the apk and there are no .so files anywhere...) – zozelfelfo Sep 20 '17 at 17:29

1 Answers1

0

Well the problem was finally solved,

The problem was that I had other projects, and my main project linked to these additional projects. One of them was google-play-services-lib and when I generated the apk a google-play-services.jar.properties file was copied to the libs folder.

Removing that google-play-services.jar.properties file from the project solved the problem completely.

Here you have the full stack in Google:

https://issuetracker.google.com/issues/65941637

Thanks everyone for your comments!

zozelfelfo
  • 3,776
  • 2
  • 21
  • 35