proguard release error — java android mvp

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Включил в проекте proguard, apk собирается, все хорошо, но приложение не работает)

Proguard-rules.pro

-keepattributes InnerClasses
-keepattributes EnclosingMethod
-keepattributes *Annotation*
-dontoptimize

# Keep Butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}

-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}

# Keep Jackson stuff
-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }
-keep class com.fasterxml.jackson.annotation.** { *; }

# Keep Retrofit
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
@retrofit.** *;
}
-keepclassmembers class * {
@retrofit.** *;
}

# Keep Picasso
-dontwarn com.squareup.picasso.**
-keep class com.squareup.picasso.** { *; }
-keepclasseswithmembers class * {
@com.squareup.picasso.** *;
}
-keepclassmembers class * {
@com.squareup.picasso.** *;
}

#Keep Usafe
-dontwarn sun.misc.Unsafe

#Keep Moxy
-keep class **$$PresentersBinder
-keep class **$$State
-keep class **$$ParamsHolder
-keep class **$$ViewStateClassNameProvider
-keepnames class * extends com.arellomobile.mvp.*

#Keep Anotations
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }

Ошибка происходит в презентере

@InjectViewState
public class MainPresenter extends MvpPresenter<MainView> {

@Inject
Service service;

public MainPresenter() {
    CamApp.getAppComponent().inject(this);
}

public void goLoginActivity(){
    getViewState().goLoginActivity();
}

public void goListCamerasActivity(){
    isAvailableServer();
}

private void isAvailableServer(){
    Observable<Response> observable = RxUtils.wrapRetrofitCallIsAvailableServer(service.isAvailableServer(""));
    RxUtils.wrapAsync(observable)
            .subscribe(server -> {
                List<String> cookie = server.headers().values("Set-Cookie");
                AuthUtils.setSessionId(cookie.get(0).split(";")[0].split("=")[1]);
                AuthUtils.setToken(cookie.get(1).split(";")[0].split("=")[1]);
                requestLoginDemo();
            }, exception -> getViewState().showError(R.string.unknown_error));
}

Пишет что поле service — No such instance field: ‘service’. При выключенном proguard все работает нормально.

service

public class Service {
private CamAPI mCamApi;

public Service(CamAPI mCamApi) {
    this.mSpaceCamApi = mSpaceCamApi;
}

public Call<BackendData> passwordRecovery(String cookie, String token, String email){
    return mCamApi.passwordRecovery(cookie, token, email);
}

public Call<Response<ResponseBody>> getArchiveLink(String devCode, String date){
    return mCamApi.getArchiveLink(devCode, date);
}

public Call<BackendData> isAvailableServer(String cookie){
    return TextUtils.isEmpty(cookie) ? mCamApi.isAvailableServer() : mCamApi.isAvailableServer(cookie);
}

public Call<BackendData> login(String cookie, String token, String username, String password, boolean remember){
    return mCamApi.login(cookie, token, username, password, remember);
}

public Call<BackendData> getAllCameraList(String cookie, String token){
    return mSpaceCamApi.getAllCameraList(cookie, token);
}

public Call<BackendData> getCamera(String cookie, String token, Long id, boolean isMobile){
    return mCamApi.getCamera(cookie, token, id, isMobile);
}

public Call<BackendData> ptz(String cookie, String token, Long id, String com){
    return mCamApi.ptz(cookie, token, id, com);
}

public Call<BackendData> logout(String cookie, String token){
    return mCamApi.logout(cookie, token);
}

}

Автор вопроса: mister

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...