작업 코드가 갑자기 작동을 멈췄습니다.-왜?

Sheershak

ASYNC TASK를 사용하여 내 앱의 데이터를 REST API를 통해 데이터베이스로 보내거나 가져 왔습니다. 내 몇 가지 프로젝트에 사용했던 코드 (완료 됨)는 다른 새 프로젝트에서도 사용하는 것입니다. 이제 새 프로젝트를 만들었고 작업 비동기 코드는 더 이상 데이터를 가져 오지 않지만 이전에 붙여 넣은 동일한 코드입니다. 프로젝트, 잘 작동합니다. 내일 시작하는 새 프로젝트가 있으며 사용하기 쉬운 코드가 새 프로젝트에서도 잘 작동하기를 바랍니다. MANIFEST에 추가 된 INTERNET PERMISSION .. postExecute에서 데이터베이스에서 Toast를 표시해야하는 MainActivity.java의 코드

import androidx.appcompat.app.AppCompatActivity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    String name;
    ArrayList<String> NAME=new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new getpostcount().execute();
    }

    public class getpostcount extends AsyncTask<String, String, String> {
        String db_url;


        @Override
        protected void onPreExecute() {
            //   Toast.makeText(newsFeed.this, "Loading........", Toast.LENGTH_SHORT).show();
            db_url = "http://testprasis.000webhostapp.com/getshopname.php";

        }

        @Override
        protected String doInBackground(String... args) {

            try {
                URL url = new URL(db_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));

                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();

                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                StringBuffer buffer = new StringBuffer();
                StringBuilder stringBuilder = new StringBuilder();
                String line = "";

                while ((line = bufferedReader.readLine()) != null) {
                    stringBuilder.append(line);

                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                String data = stringBuilder.toString().trim();

                String json;

                InputStream stream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
                int size = stream.available();
                byte[] buffer1 = new byte[size];
                stream.read(buffer1);
                stream.close();

                json = new String(buffer1, "UTF-8");
                JSONArray jsonArray = new JSONArray(json);

                for (int i = 0; i <= jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    if (jsonObject.getString("id") != null) {
                        name = jsonObject.getString("shop_name");

                        NAME.add(name);


                    }
                }


                return null;


            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
//
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
              Toast.makeText(MainActivity.this,NAME.get(0), Toast.LENGTH_SHORT).show();
        }
    }
}

LOGCAT :

2019-11-27 17:13:00.044 26790-26790/com.sheershakx.hisab E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sheershakx.hisab, PID: 26790
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.get(ArrayList.java:437)
        at com.sheershakx.hisab.MainActivity$getpostcount.onPostExecute(MainActivity.java:119)
        at com.sheershakx.hisab.MainActivity$getpostcount.onPostExecute(MainActivity.java:38)
        at android.os.AsyncTask.finish(AsyncTask.java:695)
        at android.os.AsyncTask.access$600(AsyncTask.java:180)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6810)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
아놀드 브라운

왜 갑자기 작동하지 않았습니까?

실제로 작동하지만 Android 버전에서는 Android P. 기본적으로 Android P사용 하기 때문 HTTPS입니다. 이것이 의미하는 바는 HTTP앱에서 암호화되지 않은 요청을 사용하는 경우 앱이 .NET을 제외한 모든 Android 버전 (이하)에서 제대로 작동한다는 것 Android P입니다.

Android P에서 작동하는 방법은 무엇입니까?

  1. network_security_configxml 폴더에 파일 을 생성 한 후 다음과 같은 방식으로 매니페스트에 포함하면됩니다.

network_security_config파일은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">nikit19.github.io</domain>
    </domain-config>
</network-security-config>

매니페스트에 다음으로 추가

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>
  1. Manifest 내부 애플리케이션에서 사용하기 만하면됩니다.

    android:usesCleartextTraffic="true"
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Tomcat의 자동 배포가 작동을 멈췄습니다. 왜?

분류에서Dev

터치 패드가 갑자기 작동을 멈췄습니다.

분류에서Dev

터치 패드가 갑자기 작동을 멈췄습니다.

분류에서Dev

PHP 파일 업로드가 갑자기 작동을 멈췄습니다.

분류에서Dev

갑자기 JavaScript / jQuery가 작동을 멈췄습니다.

분류에서Dev

Thunderbird Quick Filter가 갑자기 작동을 멈췄습니다.

분류에서Dev

Assetic 시계가 갑자기 작동을 멈췄습니다.

분류에서Dev

Assetic 시계가 갑자기 작동을 멈췄습니다.

분류에서Dev

Wi-Fi가 갑자기 작동을 멈췄습니다.

분류에서Dev

외장 HDD가 갑자기 작동을 멈췄습니다.

분류에서Dev

Virtualbox가 갑자기 작동을 멈췄습니다.

분류에서Dev

모든 Javascript가 갑자기 작동을 멈췄습니다.

분류에서Dev

MPI가 갑자기 여러 코어에서 작동을 멈췄습니다.

분류에서Dev

13.10 화면 키보드가 갑자기 작동을 멈췄습니다.

분류에서Dev

터치 패드가 부팅시 갑자기 작동을 멈췄습니다.

분류에서Dev

Ubuntu 18.04 사운드가 갑자기 작동을 멈췄습니다.

분류에서Dev

Kubuntu 17.04에서 터치 패드가 갑자기 작동을 멈췄습니다.

분류에서Dev

MySQL Workbench 오류 1452가 갑자기 작동을 멈췄습니다.

분류에서Dev

Azure Functions Core 도구가 갑자기 작동을 멈췄습니다.

분류에서Dev

쉘 스크립트가 갑자기 작동을 멈췄습니다.

분류에서Dev

Flash가 갑자기 SeaMonkey / Ubuntu 13.10에서 작동을 멈췄습니다.

분류에서Dev

USB 마우스가 갑자기 작동을 멈췄습니다. 16.04

분류에서Dev

Jabber-net 클라이언트가 갑자기 작동을 멈췄습니다.

분류에서Dev

Wi-Fi가 갑자기 Ubuntu 18.04에서 작동을 멈췄습니다.

분류에서Dev

iOS-인앱 구매가 갑자기 작동을 멈췄습니다.

분류에서Dev

VirtualBox가 갑자기 Ubuntu 16.04에서 작동을 멈췄습니다.

분류에서Dev

Brostrend AC1200 WiFi가 갑자기 작동을 멈췄습니다.

분류에서Dev

갑자기 $ this-> request-> data가 cakephp에서 작동을 멈췄습니다.

분류에서Dev

SQLite 데이터베이스가 갑자기 작동을 멈췄습니다.

Related 관련 기사

  1. 1

    Tomcat의 자동 배포가 작동을 멈췄습니다. 왜?

  2. 2

    터치 패드가 갑자기 작동을 멈췄습니다.

  3. 3

    터치 패드가 갑자기 작동을 멈췄습니다.

  4. 4

    PHP 파일 업로드가 갑자기 작동을 멈췄습니다.

  5. 5

    갑자기 JavaScript / jQuery가 작동을 멈췄습니다.

  6. 6

    Thunderbird Quick Filter가 갑자기 작동을 멈췄습니다.

  7. 7

    Assetic 시계가 갑자기 작동을 멈췄습니다.

  8. 8

    Assetic 시계가 갑자기 작동을 멈췄습니다.

  9. 9

    Wi-Fi가 갑자기 작동을 멈췄습니다.

  10. 10

    외장 HDD가 갑자기 작동을 멈췄습니다.

  11. 11

    Virtualbox가 갑자기 작동을 멈췄습니다.

  12. 12

    모든 Javascript가 갑자기 작동을 멈췄습니다.

  13. 13

    MPI가 갑자기 여러 코어에서 작동을 멈췄습니다.

  14. 14

    13.10 화면 키보드가 갑자기 작동을 멈췄습니다.

  15. 15

    터치 패드가 부팅시 갑자기 작동을 멈췄습니다.

  16. 16

    Ubuntu 18.04 사운드가 갑자기 작동을 멈췄습니다.

  17. 17

    Kubuntu 17.04에서 터치 패드가 갑자기 작동을 멈췄습니다.

  18. 18

    MySQL Workbench 오류 1452가 갑자기 작동을 멈췄습니다.

  19. 19

    Azure Functions Core 도구가 갑자기 작동을 멈췄습니다.

  20. 20

    쉘 스크립트가 갑자기 작동을 멈췄습니다.

  21. 21

    Flash가 갑자기 SeaMonkey / Ubuntu 13.10에서 작동을 멈췄습니다.

  22. 22

    USB 마우스가 갑자기 작동을 멈췄습니다. 16.04

  23. 23

    Jabber-net 클라이언트가 갑자기 작동을 멈췄습니다.

  24. 24

    Wi-Fi가 갑자기 Ubuntu 18.04에서 작동을 멈췄습니다.

  25. 25

    iOS-인앱 구매가 갑자기 작동을 멈췄습니다.

  26. 26

    VirtualBox가 갑자기 Ubuntu 16.04에서 작동을 멈췄습니다.

  27. 27

    Brostrend AC1200 WiFi가 갑자기 작동을 멈췄습니다.

  28. 28

    갑자기 $ this-> request-> data가 cakephp에서 작동을 멈췄습니다.

  29. 29

    SQLite 데이터베이스가 갑자기 작동을 멈췄습니다.

뜨겁다태그

보관