Apache License, Version 2.0 is not compatible with GPL version 2, according to GNU and Apache websites.

I worry is it possible to make Android projects under GPLv2 license, because, Android SDK, support libraries and most of android libraries are under Apache v2.0.

I have found a lot of popular GPLv2 Android projects that uses at least support library, do they violate GPL v2 license?

Is there any way, how to link GPL v2 library to Android Project?

  • The first three paragraphs ask about using Apache-licensed libraries in a GPLed binary, but the last one specifies a GPLed library and doesn't mention the final licence. What do you actually want to know?
    – MadHatter
    Apr 19, 2016 at 5:54
  • I would like to add GPLv2 library to my project. What final license of the project should be, so I can include GPLv2 library and Apache v2 libraries? Apr 19, 2016 at 12:50

1 Answer 1



Secondly, the licence of the Android SDK isn't material, as generally speaking software created with the use of other software is not seen as a derivative work of that other software, and so the licence obligations don't transfer.

Thirdly, when you make a derivative of a work covered by GPLv2, s2 requires that

when you distribute [...] a work based on the Program, the distribution of the whole must be on the terms of this License

So if you use a GPLv2 library (and you are happy that linking creates a derivative work, which is not a settled issue), you must release your binary under GPLv2. The importance of compatible licences is that you can combine code released under the other license with code released under the GNU GPL in one larger program. Since, as you say, Apache v2 is not compatible with GPLv2, you could not incorporate Apache-v2-licensed code into your GPLv2 binary.

But you can release it to run on a system which uses Apache v2 system libraries, because of the system library exception, which says that

If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.

This is likely how other GPLv2-covered binaries are released for Android, which as you say is quite common.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.