Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
#1

Jsoap не работает - Android

29.04.2016, 22:03. Просмотров 526. Ответов 26
Метки нет (Все метки)

Вроде всё подключил, но про вызове функции приложение крашиться.
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
32
33
34
35
package link.stuzer.vkonlinetrigger;
 
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
 
import java.io.IOException;
 
public class personPage extends AppCompatActivity{
    database dbHandler;
 
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_person_page);
 
        checkPersonStatus("testID"); // Тут краш
    }
 
    public void checkPersonStatus(String personid){
        try{
            Document doc = Jsoup.connect("http://vk.com/" + personid).get();
            String style = doc.select("#profile_online_lv").first().data();
            TextView test = (TextView)findViewById(R.id.labelStatus);
            test.setText(style);
        }catch(IOException e){
            //e.printStackTrace();
        }
    }
}
Лог:
Код
04-29 19:02:14.548 7780-7780/? I/art: Not late-enabling -Xcheck:jni (already on)
04-29 19:02:14.588 7780-7780/link.stuzer.vkonlinetrigger W/System: ClassLoader referenced unknown path: /data/app/link.stuzer.vkonlinetrigger-1/lib/x86
04-29 19:02:14.731 7780-7803/link.stuzer.vkonlinetrigger D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
04-29 19:02:14.792 7780-7803/link.stuzer.vkonlinetrigger I/OpenGLRenderer: Initialized EGL, version 1.4
04-29 19:02:14.825 7780-7803/link.stuzer.vkonlinetrigger W/EGL_emulation: eglSurfaceAttrib not implemented
04-29 19:02:14.825 7780-7803/link.stuzer.vkonlinetrigger W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad760ac0, error=EGL_SUCCESS
04-29 19:02:16.301 7780-7780/link.stuzer.vkonlinetrigger D/AndroidRuntime: Shutting down VM
04-29 19:02:16.303 7780-7780/link.stuzer.vkonlinetrigger E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: link.stuzer.vkonlinetrigger, PID: 7780
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{link.stuzer.vkonlinetrigger/link.stuzer.vkonlinetrigger.personPage}: android.os.NetworkOnMainThreadException
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                            Caused by: android.os.NetworkOnMainThreadException
                                                                               at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)
                                                                               at java.net.InetAddress.lookupHostByName(InetAddress.java:431)
                                                                               at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
                                                                               at java.net.InetAddress.getAllByName(InetAddress.java:215)
                                                                               at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
                                                                               at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
                                                                               at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
                                                                               at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
                                                                               at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
                                                                               at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
                                                                               at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
                                                                               at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
                                                                               at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
                                                                               at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
                                                                               at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:563)
                                                                               at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540)
                                                                               at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227)
                                                                               at org.jsoup.helper.HttpConnection.get(HttpConnection.java:216)
                                                                               at link.stuzer.vkonlinetrigger.personPage.checkPersonStatus(personPage.java:42)
                                                                               at link.stuzer.vkonlinetrigger.personPage.onCreate(personPage.java:31)
                                                                               at android.app.Activity.performCreate(Activity.java:6237)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)*
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java)*
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)*
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)*
                                                                               at android.os.Looper.loop(Looper.java:148)*
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)*
                                                                               at java.lang.reflect.Method.invoke(Native Method)*
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)*
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)*
В чём может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2016, 22:03     Jsoap не работает
Посмотрите здесь:

Android RSS-читалка - работает на эмуляторе, не работает на реальном девайсе
Работает в Eclipce но не работает на телефоне Android
Стандартная функция delete в Eclipse работает а в AndroidStudio не работает Android
Android Socket.io (прослушивание события работает на Desktop и не работает на Android)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.04.2016, 23:41     Jsoap не работает #2
Цитата Сообщение от illya05 Посмотреть сообщение
Caused by: android.os.NetworkOnMainThreadException
Тут проблема
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 00:28  [ТС]     Jsoap не работает #3
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
public void checkPersonStatus(final String personid){
        Runnable r = new Runnable(){
            @Override
            public void run(){
                try{
                    doc = Jsoup.connect("http://vk.com/testID").get();
                    String style = doc.select("#profile_online_lv").first().data();
 
                    runOnUiThread(new Runnable() {
                        public void run() {
                            // your code to update the UI thread here
                            personStatus.setText("asd");
                        }
                    });
 
                    //TextView test = (TextView)findViewById(R.id.labelStatus);
                    //test.setText("asd");
                    //if(){}else{}
                }catch(Exception e){
                    //TextView test = (TextView)findViewById(R.id.labelStatus);
                    personStatus.setText("asd");
                    //e.printStackTrace();
                };
 
                //handler.sendEmptyMessage(doc.title());
            }
        };
 
        Thread stuzersThread = new Thread(r);
        stuzersThread.start();
    }
Код
04-29 21:27:06.518 21737-21737/? I/art: Not late-enabling -Xcheck:jni (already on)
04-29 21:27:06.551 21737-21737/? W/System: ClassLoader referenced unknown path: /data/app/link.stuzer.vkonlinetrigger-1/lib/x86
04-29 21:27:06.686 21737-21747/link.stuzer.vkonlinetrigger W/art: Suspending all threads took: 15.043ms
04-29 21:27:06.743 21737-21762/link.stuzer.vkonlinetrigger D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
04-29 21:27:06.797 21737-21762/link.stuzer.vkonlinetrigger I/OpenGLRenderer: Initialized EGL, version 1.4
04-29 21:27:06.827 21737-21762/link.stuzer.vkonlinetrigger W/EGL_emulation: eglSurfaceAttrib not implemented
04-29 21:27:06.827 21737-21762/link.stuzer.vkonlinetrigger W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad77d800, error=EGL_SUCCESS
04-29 21:27:07.474 21737-21737/link.stuzer.vkonlinetrigger I/Choreographer: Skipped 37 frames!  The application may be doing too much work on its main thread.
04-29 21:27:09.871 21737-21762/link.stuzer.vkonlinetrigger W/EGL_emulation: eglSurfaceAttrib not implemented
04-29 21:27:09.871 21737-21762/link.stuzer.vkonlinetrigger W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad77f0e0, error=EGL_SUCCESS
04-29 21:27:09.964 21737-21762/link.stuzer.vkonlinetrigger E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb4056c90
04-29 21:27:09.971 21737-21762/link.stuzer.vkonlinetrigger D/OpenGLRenderer: endAllStagingAnimators on 0xa4420380 (ListView) with handle 0xaef37a90
04-29 21:27:09.997 21737-21814/link.stuzer.vkonlinetrigger E/AndroidRuntime: FATAL EXCEPTION: Thread-391
                                                                             Process: link.stuzer.vkonlinetrigger, PID: 21737
                                                                             java.lang.ExceptionInInitializerError
                                                                                 at org.jsoup.nodes.Entities.access$000(Entities.java:17)
                                                                                 at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)
                                                                                 at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:373)
                                                                                 at org.jsoup.nodes.Document.<init>(Document.java:18)
                                                                                 at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29)
                                                                                 at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)
                                                                                 at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:53)
                                                                                 at org.jsoup.parser.Parser.parseInput(Parser.java:30)
                                                                                 at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:143)
                                                                                 at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:653)
                                                                                 at org.jsoup.helper.HttpConnection.get(HttpConnection.java:217)
                                                                                 at link.stuzer.vkonlinetrigger.personPage$2.run(personPage.java:60)
                                                                                 at java.lang.Thread.run(Thread.java:818)
                                                                              Caused by: java.lang.NullPointerException: in == null
                                                                                 at java.util.Properties.load(Properties.java:246)
                                                                                 at org.jsoup.nodes.Entities.loadEntities(Entities.java:241)
                                                                                 at org.jsoup.nodes.Entities.<clinit>(Entities.java:225)
                                                                                 at org.jsoup.nodes.Entities.access$000(Entities.java:17)*
                                                                                 at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)*
                                                                                 at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:373)*
                                                                                 at org.jsoup.nodes.Document.<init>(Document.java:18)*
                                                                                 at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29)*
                                                                                 at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)*
                                                                                 at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:53)*
                                                                                 at org.jsoup.parser.Parser.parseInput(Parser.java:30)*
                                                                                 at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:143)*
                                                                                 at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:653)*
                                                                                 at org.jsoup.helper.HttpConnection.get(HttpConnection.java:217)*
                                                                                 at link.stuzer.vkonlinetrigger.personPage$2.run(personPage.java:60)*
                                                                                 at java.lang.Thread.run(Thread.java:818)*
04-29 21:27:10.448 21737-21762/link.stuzer.vkonlinetrigger E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa30d14d0
Одну пофиксил, вылезла другая(
fraley
94 / 94 / 34
Регистрация: 24.05.2015
Сообщений: 284
30.04.2016, 13:09     Jsoap не работает #4
Недавно была похожая тема на форуме, решил для себя сделать простой пример чтоб иметь представление что и как.
Всякие плюшки в виде выведения нужной правильной информации и проверки на различные исключения - это уже на ваше усмотрение.
Пример рабочий.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class MainActivity extends AppCompatActivity {
 
    String url = "https://news.google.ru";
    ArrayList<String> arrayList;
    ListView listView;
    ArrayAdapter arrayAdapter;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        arrayList=new ArrayList<>();
        setContentView(R.layout.activity_main);
        
        listView=(ListView)findViewById(R.id.listView);
        arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,arrayList);
        listView.setAdapter(arrayAdapter);
        
        new MyTask().execute();
    }
    public class MyTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected Void doInBackground(Void... voids) {
 
            try {
                Document document = Jsoup.connect(url).get();
                Elements description = document.select("a");
 
                for(Element titleFromSite:description){
                    if(titleFromSite.text().equals(""))
                        continue;
                    arrayList.add(titleFromSite.text());
                }
            }catch (IOException ex){
                ex.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void aVoid) {
 
            arrayAdapter.notifyDataSetChanged();
        }
    }
}
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 13:53  [ТС]     Jsoap не работает #5
fraley, Я ведь забыл рассказать зачем мне это всё. Мне нужно получить статус (онлайн/оффлайн) человека в ВК по его ID. И результат записать в TextView.

Попробовал сделать так:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
database dbHandler;
    Document doc = null;
    TextView personName;
    TextView personStatus;
 
    String url = "http://vk.com/";
    ArrayList<String> arrayList;
    String personID;
 
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_person_page);
 
        dbHandler = new database(this, null, null, 1);
 
        Bundle personData = getIntent().getExtras();
        if(personData == null) return;
        String personMessage = personData.getString("personName");
 
        final TextView personName = (TextView)findViewById(R.id.labelName);
        final TextView personStatus = (TextView)findViewById(R.id.labelStatus);
        personName.setText(personMessage);
        personID = personMessage;
 
        new MyTask().execute();
 
        personStatus.setText(arrayList.toString()); // Ошибка
    }
 
    public class MyTask extends AsyncTask<Void, Void, Void>{
        @Override
        protected Void doInBackground(Void... voids){
 
            try{
                Document document = Jsoup.connect(url + personID).get();
                Elements description = document.select("a");
                
                arrayList.add(doc.title());
            }catch(IOException ex){
                ex.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void aVoid){
            //personStatus.setText(doc.title());
        }
    }
Код
04-30 10:53:06.445 12786-12786/link.stuzer.vkonlinetrigger I/art: Not late-enabling -Xcheck:jni (already on)
04-30 10:53:06.488 12786-12786/link.stuzer.vkonlinetrigger W/System: ClassLoader referenced unknown path: /data/app/link.stuzer.vkonlinetrigger-1/lib/x86
04-30 10:53:06.758 12786-12815/link.stuzer.vkonlinetrigger D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
04-30 10:53:06.813 12786-12815/link.stuzer.vkonlinetrigger I/OpenGLRenderer: Initialized EGL, version 1.4
04-30 10:53:06.859 12786-12815/link.stuzer.vkonlinetrigger W/EGL_emulation: eglSurfaceAttrib not implemented
04-30 10:53:06.859 12786-12815/link.stuzer.vkonlinetrigger W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xabeab3c0, error=EGL_SUCCESS
04-30 10:53:07.471 12786-12786/link.stuzer.vkonlinetrigger I/Choreographer: Skipped 32 frames!  The application may be doing too much work on its main thread.
04-30 10:53:16.928 12786-12786/link.stuzer.vkonlinetrigger D/AndroidRuntime: Shutting down VM
04-30 10:53:16.928 12786-12786/link.stuzer.vkonlinetrigger E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: link.stuzer.vkonlinetrigger, PID: 12786
                                                                             java.lang.RuntimeException: Unable to start activity ComponentInfo{link.stuzer.vkonlinetrigger/link.stuzer.vkonlinetrigger.personPage}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.util.ArrayList.toString()' on a null object reference
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                              Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.util.ArrayList.toString()' on a null object reference
                                                                                 at link.stuzer.vkonlinetrigger.personPage.onCreate(personPage.java:41)
                                                                                 at android.app.Activity.performCreate(Activity.java:6237)
                                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)*
                                                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java)*
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)*
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)*
                                                                                 at android.os.Looper.loop(Looper.java:148)*
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)*
                                                                                 at java.lang.reflect.Method.invoke(Native Method)*
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)*
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)*
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err: org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http://vk.com/yyyy
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:590)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at org.jsoup.helper.HttpConnection.get(HttpConnection.java:216)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:49)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:44)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
04-30 10:53:17.023 12786-12818/link.stuzer.vkonlinetrigger W/System.err:     at java.lang.Thread.run(Thread.java:818)
fraley
94 / 94 / 34
Регистрация: 24.05.2015
Сообщений: 284
30.04.2016, 15:39     Jsoap не работает #6
Цитата Сообщение от illya05 Посмотреть сообщение
fraley, Я ведь забыл рассказать зачем мне это всё. Мне нужно получить статус (онлайн/оффлайн) человека в ВК по его ID. И результат записать в TextView.
Во-первых первое исключение у вас должно быть на строчке 39, потому что вы пытаетесь использовать arrayList не инициализировав его.
Java
1
arrayList=new ArrayList<>();
Во-вторых, я не зарегистрирован "В контакте" и если я правильно понимаю, то я не смогу увидеть статус (онлайн/оффлайн) человека. Или могу?
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 17:13  [ТС]     Jsoap не работает #7
Цитата Сообщение от fraley Посмотреть сообщение
Во-вторых, я не зарегистрирован "В контакте" и если я правильно понимаю, то я не смогу увидеть статус (онлайн/оффлайн) человека. Или могу?
Нужно проверить стоит ли у
Код
<b id="profile_online_lv" style="display: none;" class="fl_r">
стиль "display: none;"

Добавлено через 21 секунду
Он указан прямо в теге.
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 18:12     Jsoap не работает #8
Цитата Сообщение от illya05 Посмотреть сообщение
Jsoup.connect
soup или soap?
в теме Jsoap, в функции Jsoup
лучше исключения "пробрасывать" вызывающей проге, а не крашить всю прогу из вызываемого метода.

Добавлено через 12 минут
illya05,
а чем вам Сокеты не угодили или HttpURLconnection
читать из сокета или урла можно построчно и сравнивать с вашей строкой, если совпало со строкой онлайн, то онлайн и наоборот. соединение можно не разрывать и допустим каждые секунд 30 проверять статус
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.04.2016, 19:56     Jsoap не работает #9
SergioO, что же Вы со своими сокетами в каждой теме) тут Jsoup отлично подходит
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 20:52     Jsoap не работает #10
Цитата Сообщение от YuraAAA Посмотреть сообщение
SergioO, что же Вы со своими сокетами в каждой теме) тут Jsoup отлично подходит
я просто за то, чтобы понимать, что ты делаешь, а не накручивать "левую" библиотеку радио одного статуса пользователя. тут надо-то один стандартный дройдовский класс и функция поиска строки )) причем первые сколько байт можно смело в битоприемник помойку /dev/null отправлять.
а регулярками парсить для этого всю страницу в DOM при помощи "левой" библиотеки ради состояния пользователя - имхо... даже не знаю что тут сказать. крашить в методе весь процесс тоже "не совсем гуд".
сколько видов IPC вы знаете? сокеты, пайпы,... я знаю 5 и из этого сокеты самые подходящие для "удаленки".
можно локалсокет к любому хосту, любому порту серсерсокета прикрутить, обрабатывать инфу асинхронно и тд
хочешь данные regex парси, хочешь в файл пиши или буфер.
а всякие нашлепки на и так не сложные вещи ... библиотека классов java или stl в C++ умрешь (хотя STL Степанов в одно лицо запилил) реализовывать, но под совсем простые задачи уж можно и самому написать - хоть что происхэодит и гле ошибся будешь понимать
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 21:09  [ТС]     Jsoap не работает #11
SergioO, Хорошо, не подскажите как на сокетах тогда это реализовать?
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 21:29     Jsoap не работает #12
вообще-то vk требует авторизацию и просто vk.ru/id111 ничего не даст
или у вас заходит? просто я не пользуюсь vk
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 22:17  [ТС]     Jsoap не работает #13
SergioO, Есть страницы в общем доступе, они всем видны.
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 22:50     Jsoap не работает #14
illya05, например

Добавлено через 32 минуты
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
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
 
public class Http {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://vk.com/idxxxxx");// id допишите
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            InputStream inStream = new BufferedInputStream(urlConnection.getInputStream());
            Scanner in = new Scanner(inStream);
 
            String subStr = "<b id="profile_online_lv" style="display: none;" class="fl_r">";// строку подкорректируйте
 
            while (in.hasNextLine()) {
                String line = in.nextLine();
                boolean isContain = line.contains(subStr);
                System.out.println(isContain);// нашел - выведет true
                System.out.println(line);
            }
            urlConnection.disconnect();
            
        }
        catch (Exception e) {
            System.out.println(e);
        }
        
    }
}
сделал на android.HttpURLConnection
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 22:51  [ТС]     Jsoap не работает #15
SergioO, http://vk.com/durov
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 23:05     Jsoap не работает #16
можно и в Https уйти, если надо и залогиниться и куки "сымитировать"

Добавлено через 8 минут
Java
1
2
3
4
5
6
7
8
9
10
String subStr = "<b";// id="profile_online_lv"";// style="display: none;" class="fl_r">";
 
            while (in.hasNextLine()) {
                String line = in.nextLine();
                boolean isContain = line.contains(subStr);
                    if (isContain) {
                        System.out.println(isContain);
                        System.out.println(line);
 
                    }
чет не увидел я такого, как вам надо
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
30.04.2016, 23:05  [ТС]     Jsoap не работает #17
SergioO, куки не нужны, просто стиль html тэга проверить нужно.
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
30.04.2016, 23:12     Jsoap не работает #18
да и в идеале исключения прокинуть
main throws
только не охото этим заниматься

Добавлено через 4 минуты
не вижу где там у него статус
fraley
94 / 94 / 34
Регистрация: 24.05.2015
Сообщений: 284
01.05.2016, 01:04     Jsoap не работает #19
illya05, посмотри.
Вроде работает.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
public class MainActivity extends AppCompatActivity {
 
    private String url = "http://vk.com/durov";
    private ProgressDialog progressDialog=null;
    private String status;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        progressDialog=ProgressDialog.show(MainActivity.this, null, "Connecting...", true, true);
        new MyTask().execute();
 
    }
    public class MyTask extends AsyncTask<Void, Void, Void> {
 
        @Override
        protected Void doInBackground(Void... voids) {
 
            try {
                Document document = Jsoup.connect(url).cookie("IsPassClientEnvironDetection", "true")
                        .cookie("IsPassMobileClientEnvironDetection", "true")
                        .method(Connection.Method.GET)
                        .post();
                Element description = document.select("b[id=profile_online_lv]").first();
                status=description.text();
 
            }catch (IOException ex){
                ex.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void aVoid) {
           if(progressDialog!=null && progressDialog.isShowing()) {
                progressDialog.dismiss();
            }
            ((TextView)findViewById(R.id.textView)).setText(status);
 
        }
    }
}
illya05
139 / 95 / 19
Регистрация: 03.08.2013
Сообщений: 751
01.05.2016, 02:08  [ТС]     Jsoap не работает #20
Код
04-30 23:07:17.976 9496-9528/link.stuzer.vkonlinetrigger E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                                           Process: link.stuzer.vkonlinetrigger, PID: 9496
                                                                           java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                               at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                               at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                               at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                               at java.lang.Thread.run(Thread.java:818)
                                                                            Caused by: java.lang.ExceptionInInitializerError
                                                                               at org.jsoup.nodes.Entities.access$000(Entities.java:17)
                                                                               at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)
                                                                               at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:373)
                                                                               at org.jsoup.nodes.Document.<init>(Document.java:18)
                                                                               at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29)
                                                                               at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)
                                                                               at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:53)
                                                                               at org.jsoup.parser.Parser.parseInput(Parser.java:30)
                                                                               at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:143)
                                                                               at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:653)
                                                                               at org.jsoup.helper.HttpConnection.post(HttpConnection.java:223)
                                                                               at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:57)
                                                                               at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:48)
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)*
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)*
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)*
                                                                               at java.lang.Thread.run(Thread.java:818)*
                                                                            Caused by: java.lang.NullPointerException: in == null
                                                                               at java.util.Properties.load(Properties.java:246)
                                                                               at org.jsoup.nodes.Entities.loadEntities(Entities.java:241)
                                                                               at org.jsoup.nodes.Entities.<clinit>(Entities.java:225)
                                                                               at org.jsoup.nodes.Entities.access$000(Entities.java:17)*
                                                                               at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)*
                                                                               at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:373)*
                                                                               at org.jsoup.nodes.Document.<init>(Document.java:18)*
                                                                               at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29)*
                                                                               at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)*
                                                                               at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:53)*
                                                                               at org.jsoup.parser.Parser.parseInput(Parser.java:30)*
                                                                               at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:143)*
                                                                               at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:653)*
                                                                               at org.jsoup.helper.HttpConnection.post(HttpConnection.java:223)*
                                                                               at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:57)*
                                                                               at link.stuzer.vkonlinetrigger.personPage$MyTask.doInBackground(personPage.java:48)*
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:295)*
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)*
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)*
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)*
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)*
                                                                               at java.lang.Thread.run(Thread.java:818)*
04-30 23:07:18.251 9496-9525/link.stuzer.vkonlinetrigger E/Surface: getSlotFromBufferLocked: unknown buffer: 0xabf66a70
04-30 23:07:18.255 9496-9525/link.stuzer.vkonlinetrigger D/OpenGLRenderer: endAllStagingAnimators on 0xab5dd380 (ListView) with handle 0xa3ebeed0
04-30 23:07:23.282 9496-9528/? I/Process: Sending signal. PID: 9496 SIG: 9
Yandex
Объявления
01.05.2016, 02:08     Jsoap не работает
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru