Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams If its inside of a class, shouldn't the proguard parameters include your outer class as part of the full name of the interface? Morrison Chang Sep 4, 2014 at 16:50

ProGuard uses the naming convention of Java bytecode, as seen in class file names and stacktraces. Therefore:

-keep public interface com.somepackage.SomeClass$someInterface {*;}
                I lost an hour because I used above syntax which didn't work for me. The reason was that I define my interfaces without the public accessor (it's obsolete since all interfaces are public). In that case you need to use: -keep interface com.somepackage.SomeClass$someInterface {*;}. I think ProGuard should be "clever" enough to handle his case automatically.
– Emanuel Moecklin
                Jan 30, 2017 at 21:18

For those who are looking for how to keep a custom annotation (which is defined in a @interface in java) retaining its all members,

you should actually use like below to keep it:

-keep @interface com.your.annotation.interface. {*;}
                isnt that you should have it like -keep @interface com.your.annotation.interface.** { *; } or it is the different meaning?
– Emil
                Jul 10, 2022 at 23:15
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.