Конфигурация Proguard для внутреннего интерфейса - PullRequest
0 голосов
/ 31 мая 2018

У меня есть класс с внутренним интерфейсом реализации другого класса, подобным этому:

public class DownloadService extends Service implements Downloader.Callback { 
    ....
    // override interface methods and other stuff
    ....
}

public class Downloader {
    private Callback callback;

    public Downloader(Callback callback) {
        this.callback = callback;
    }

    ....
    ....

    public interface Callback {
        // interface methods
    }
}

Теперь, когда я использую proguard для этого кода, я получаю предупреждения, подобные этому:

com.example.DownloadService$Downloader: can't find referenced method 'java.util.List access$000(com.example.DownloadService)' in program class com.example.DownloadService  
com.example.DownloadService$Downloader: can't find referenced method 'void access$100(com.example.DownloadService)' in program class com.example.DownloadService    
com.example.DownloadService$Downloader: can't find referenced method 'android.app.NotificationManager access$200(com.example.DownloadService)' in program class com.example.DownloadService

Как мне это исправить?Я попытался добавить следующее в мой proguard.cfg:

-keepclasseswithmembers class com.example.DownloadService { *; }
-keep public interface com.example.tasks.Downloader$Callback { *; }

1 Ответ

0 голосов
/ 31 мая 2018

Я понял это.com.example.DownloadService$Downloader это внутренний класс, который я недавно удалил.A Build> Clean Project исправлено.

4 часа моей жизни - только что прошло.

...