На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Исключение во время запуска программы. , первые шаги при написании ПО под андройд
    При попытке прочитать содержимое файла на сайте.

    чтение файла json
    ExpandedWrap disabled
       public void readJSONFile() {
              try {
                  String text="";
                  DefaultHttpClient  httpclient = new DefaultHttpClient();
                  HttpGet httppost = new HttpGet("http://site/file.json");
                  HttpResponse response = httpclient.execute(httppost);
                  HttpEntity ht = response.getEntity();
                  BufferedHttpEntity buf = new BufferedHttpEntity(ht);
                  InputStream is = buf.getContent();
       
              // ...
       
              }
              catch(Exception e)
              {
                  // Вывод отладочного сообщения
                  Log.d("Exception", e.getMessage());
                  // ошибка
                  tvData.setText(e.getMessage());
              }
          }


    ссылка на сайт http://site/file.json (фикция), конечно реально другая и существующая.

    Падает на
    ExpandedWrap disabled
       HttpResponse response = httpclient.execute(httppost);


    Вопросы
    1) Как правильно считать файл из инета? Может есть проще способ моего.
    2) Как узнать почему падает?

    ExpandedWrap disabled
       // Вывод отладочного сообщения
                  Log.d("Exception", e.getMessage());

    тупо не печатается.

    Добавлено
    Переделал так
    http://www.androidsnippets.com/executing-a...with-httpclient

    Получил исключение:
    ExpandedWrap disabled
      05-24 20:43:23.478  27331-27331/? E/[GET REQUEST]﹕ Network exception
          android.os.NetworkOnMainThreadException
                  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1208)
                  at java.net.InetAddress.lookupHostByName(InetAddress.java:388)
                  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:239)
                  at java.net.InetAddress.getAllByName(InetAddress.java:214)
                  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
                  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
                  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
                  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:367)
                  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:748)
                  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519)
                  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497)
                  at com.example.user.workersinformation.WorkersInformationActivity.getInputStreamFromUrl(WorkersInformationActivity.java:67)
                  at com.example.user.workersinformation.WorkersInformationActivity.readJSONFile(WorkersInformationActivity.java:79)
                  at com.example.user.workersinformation.WorkersInformationActivity.onCreate(WorkersInformationActivity.java:42)
                  at android.app.Activity.performCreate(Activity.java:5165)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)
                  at android.app.ActivityThread.access$600(ActivityThread.java:162)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:158)
                  at android.app.ActivityThread.main(ActivityThread.java:5751)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:511)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
                  at dalvik.system.NativeStart.main(Native Method)


    Добавлено
    видимо я что-то не донастроил с сетью в проекте.

    соответственно, 3 вопрос:
    что настроить, чтобы доступ к сети был?

    да, да чайник, да, да пытаюсь нахрапом... и все же помогите :'(
      1. Должно само в LogCat напечатать при необработанном исключении (хотя смотря какая IDE)
      2. Используйте Try...Catch
      3. NetworkOnMainThreadException - запрещено выполнять сетевые операции в потоке UI, создайте отдельный поток.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0201 ]   [ 15 queries used ]   [ Generated: 2.05.24, 07:32 GMT ]