Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
LOST16
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 4
1

Proguard и NullPointerException

27.03.2017, 15:20. Просмотров 857. Ответов 6
Метки нет (Все метки)

Задействуйте! Надеюсь кто-то поможет.
Проблема такая. В release версии ( с использованием proguard) приложения возникает ошибка
Кликните здесь для просмотра всего текста

FATAL EXCEPTION: Thread-4
Process: com.nuwmschedule, PID: 15203
java.lang.ExceptionInInitializerError
at org.a.b.i.a(Unknown Source)
at org.a.b.i$b.<clinit>(Unknown Source)
at org.a.b.f$a.<init>(Unknown Source)
at org.a.b.f.<init>(Unknown Source)
at org.a.c.l.b(Unknown Source)
at org.a.c.l.a(Unknown Source)
at org.a.c.b.a(Unknown Source)
at org.a.c.f.b(Unknown Source)
at org.a.c.a(Unknown Source)
at com.nuwmschedule.a.d.b(Unknown Source)
at com.nuwmschedule.h.run(Unknown Source)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.Reader.read(char[])' on a null object reference
at java.util.Properties$LineReader.readLine(Properties.java:435)
at java.util.Properties.load0(Properties.java:354)
at java.util.Properties.load(Properties.java:342)
at org.a.b.i.d(Unknown Source)
at org.a.b.i.<clinit>(Unknown Source)
at org.a.b.i.a(Unknown Source)*
at org.a.b.i$b.<clinit>(Unknown Source)*
at org.a.b.f$a.<init>(Unknown Source)*
at org.a.b.f.<init>(Unknown Source)*
at org.a.c.l.b(Unknown Source)*
at org.a.c.l.a(Unknown Source)*
at org.a.c.b.a(Unknown Source)*
at org.a.c.f.b(Unknown Source)*
at org.a.c.a(Unknown Source)*
at com.nuwmschedule.a.d.b(Unknown Source)*
at com.nuwmschedule.h.run(Unknown Source)*

Как я понимаю ошибка возникает в методе где есть следующий код
Java
1
2
3
4
5
6
BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream(),"windows-1251"));
        String inputLine;
        StringBuffer response = new StringBuffer();  
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
Вот содержимое build.gradle
Кликните здесь для просмотра всего текста


apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion '24.0.3'
defaultConfig {
applicationId "com.nuwmschedule"
minSdkVersion 14
targetSdkVersion 23
versionCode 10
versionName "1.0"
vectorDrawables.useSupportLibrary = true
vectorDrawables.generatedDensities = ['hdpi','xxhdpi']
multiDexEnabled true

}
buildTypes {
release {
multiDexEnabled true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
multiDexEnabled false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
}
productFlavors {
dev {
minSdkVersion 21
}
prod {
minSdkVersion 14

}
}

}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'uk.co.samuelwall:material-tap-target-prompt:1.9.3'
compile 'com.android.support:multidex:1.0.1'
compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
compile 'org.jsoup:jsoup:1.9.2'
compile 'com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
compile 'com.android.support:cardview-v7:24.2.0'
compile 'net.opacapp:multiline-collapsingtoolbar:1.3.1'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:support-vector-drawable:24.2.0'
compile 'com.android.support:support-v13:24.2.0'
compile 'com.android.supportreference-v14:24.2.0'
compile 'com.android.support:support-v4:24.2.0'
compile 'com.android.support:design:24.2.0'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.readystatesoftware.systembartint:systembartint:1.0.4'
compile 'com.balysv:material-ripple:1.0.2'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.kogitunere-lollipop-activity-transition:1.3.2'
compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'
compile 'rapid.decoder:library:0.3.0'
compile 'com.google.android.gmslay-services:10.2.0'
compile 'rapid.decoder:jpeg-decoder:0.3.0'
compile 'com.google.android.gmslay-services-auth:10.2.0'
compile 'com.google.api-client:google-api-client:1.20.0'
compile 'com.google.http-client:google-http-client-gson:1.16.0-rc'
compile('com.google.api-client:google-api-client-android:1.16.0-rc') {
exclude module: 'httpclient'
exclude group: 'org.apache.httpcomponents'
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
}



Вот файл proguard-rules.pro

Кликните здесь для просмотра всего текста

-keep class com.google.**
-dontwarn com.google.**
-dontwarn org.apache.commons.**
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**


Кто знает какова причина и как ее исправить?
Если я верно понял, то proguard убирает класс java.io.Reader ?

Добавлено через 8 минут
Даже если добавить проверку in на null, или вообще банально написать Log.e("","OK"); в самом начале метода, в консоль не будет выведено OK, так как ошибка возникает в момент вызова моего метода.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2017, 15:20
Ответы с готовыми решениями:

proguard
Пытаюсь сделать обфускацию приложения при помощи Proguard. В теории вроде всё...

ProGuard ошибки
Делаю компиляцию приложения, компилится хорошо, но в процессе работы приложения...

Как настраивать Proguard
Приветствую! Есть необходимость защитить приложение от декомпиляции, для...

ProGuard на IntelliJ IDEA
Кто нибудь пробовал в IDEA использовать ProGuard? В project.properties...

ProGuard сопротивление компилированию(
Народ всем привет. Уже три дня бьюсь с ProGuard все время выходит такая ошибка:...

6
vxg
Модератор
3278 / 2075 / 327
Регистрация: 13.01.2012
Сообщений: 8,055
27.03.2017, 16:46 2
LOST16, что в con?
1
LOST16
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 4
27.03.2017, 17:01  [ТС] 3
Цитата Сообщение от vxg Посмотреть сообщение
LOST16, что в con?
Спасибо за ответ.
Такая же ошибка в другом методе.
Удалось выяснить что ошибка возникает здесь Jsoup.parse(response.toString())
а именно в методе parse
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        String url = "http://............";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setConnectTimeout(6000);
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", "Mozilla/5.0");
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        con.setRequestProperty("Accept-Charset", "UTF-8");
        String urlParameters = "............";
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();
 
        if(con.getResponseCode()!=200){ throw  new Exception(); }
 
 
        BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream(),"windows-1251"));
        String inputLine;
 
        StringBuffer response = new StringBuffer(); 
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
 
        in.close();  
 
 
        /*ВОТ ТУТ */
        Document doc = Jsoup.parse(response.toString());
Но почему?
0
vxg
Модератор
3278 / 2075 / 327
Регистрация: 13.01.2012
Сообщений: 8,055
27.03.2017, 17:21 4
LOST16, мб прогвард укокошил жсуп?
0
LOST16
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 4
27.03.2017, 17:50  [ТС] 5
-keep class org.jsoup..**
-dontwarn org.jsoup..**
не помогает
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
27.03.2017, 19:09 6
Лучший ответ Сообщение было отмечено LOST16 как решение

Решение

LOST16, берете каждую зависимости и ищете для нее настройки Proguard
для jsoup это
Java
1
-keeppackagenames org.jsoup.nodes
вот ресурсы для поиска
https://github.com/yongjhih/android-proguards
https://github.com/krschultz/android-proguard-snippets
1
LOST16
28.03.2017, 00:11  [ТС]     Proguard и NullPointerException
  #7

Не по теме:

Огромное спасибо!:thank_you: Помогло.
3 дня не мог решить эту проблему, думал все уже.
Здесь как-то можно поставить плюс в репутацию? Если да, то поставьте, я не могу пока)

0
28.03.2017, 00:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2017, 00:11
Привет! Вот еще темы с ответами:

Как настроить ProGuard в IDEA?
Сабж. Искал, читал, но до конца так и не понял..

Свое правило для Proguard
Как создать правило для Proguard? т.е. так чтобы он шифровал только нужные мне...

Оптимизация по размеру при использовании ProGuard
Помогите, пожалуйста, разобраться. Я работаю в Eclipse. В файле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru