Talk about a nightmare…
For Android developers… I recently upgraded to Android Studio 3 and upgraded Gradle and NDK at the same time. All appeared fine initially with the exception of some NDK warnings about deprecated ABIs.
Everything worked fine for a couple days… switching variants, release types, etc and then last night as I was preparing a release build I lost all the out/ arsdk intermediates. And it got worse from there. My best guess is that when I switched build variants last night I triggered a clean or similar.
The first problem I ran into was Grade related (I upgraded to 4.0.1 from 3.3) … “compile” dependency operatives are no longer valid meaning that you have to use either “api” or “implementation”.
After reading up a little bit, I decided that I would replace all gradle “compile” references with “api”. Awesome, the gradle deprecated “compile” errors went away but nothing was getting built in my out folder. I’ve yet to figure out what else is broke, but it appears there’s something else preventing dependencies from the out/ directory to load / resolve.
I remembered doing the NDK upgrade (I went from 15c to 16) when I upgraded Android Studio to 3 so on a whim I dropped into my arsdk folder, renamed out and kicked off a new full build of the sdk. Apparently, not only did Google deprecate a bunch of ABIs in 16, but they also finalized removal of build specific headers, requiring apps to now use their “unified” ones. I fiddled around with a couple .mk files in the sdk (to get it to recognize NDK 16) and got a build launch but it eventually failed with a missing header (go figure).
On one hand I want to tackle both the gradle and NDK changes, but on the other, it will easily take me an evening or two or three to get it done.
Eventually, I reverted gradle to 3.3 and NDK to 15c and got my build done, but I got a taste for what it is coming and it doesn’t look pretty.