programing

Android - SPAN_EXBLEX_EXBLEX 스팬의 길이는 0일 수 없음

prostudy 2022. 4. 24. 09:37
반응형

Android - SPAN_EXBLEX_EXBLEX 스팬의 길이는 0일 수 없음

다음과 같은 레이아웃이 있다(사실상 비어 있음).

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/set_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:contentDescription="content desc"
    android:orientation="vertical" >

    <TextView android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Hello, I am a TextView" />
</LinearLayout>

활동 클래스는 다음을 포함한다.

public class TestActivity extends Activity {
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);   
  }
}

모바일 장치에서 실행하면 다음 오류가 표시됨:

SpannableStringBuilder
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

나는 이것을 TextView와 함께 그리고 없이 시도했고, 오류가 여전히 남아있다, 나는 이러한 기본적인 레이아웃이 이것을 야기하는 것을 근본적으로 잘못하고 있는 것이 틀림없다.

오류 없이 이 파일을 로드할 수 있는 방법에 대한 의견이 있으십니까?

나는 LogCat에서 동일한 오류 항목을 발견했다.내 경우는 내가 사용하는 타사 키보드가 원인이야.다시 안드로이드 키보드로 바꾸면 오류 항목이 더 이상 나타나지 않는다.

왜냐하면 당신이 받는 오류는EditText키보드는 키보드와 관련이 없다.

당신이 받고 있는 오류는 당신의 코드의 결과가 아니다; 당신은 아마도 삼성의 터치위즈를 가지고 있는 삼성 기기에서 테스트를 하고 있을 것이다.

같은 오류가 있었고, 그 다음 넥서스 S(삼성도 테스트했지만 터치위즈가 없는 순수한 안드로이드 OS)에서 테스트를 했는데 이런 오류를 얻지 못했다.

따라서, 여러분의 경우, 기기에서 테스트하는 동안 이러한 오류는 무시하십시오!:)

코드를 보니 왜 그런 오류가 발생하는지 모르겠지만, 나는 EditText 필드가 아닌 같은 오류가 있었어.

변화하는android:inputType="text"(또는 다른 입력유형 텍스트 변형 중 하나)android:inputType="textNoSuggestions"(또는)android:inputType="textEmailAddress|textNoSuggestions", 예를 들어) 나를 위해 고쳤다.

이런 것을 코드에서 설정할 수도 있다.

mInputField.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

Android는 기본적으로 EditText 필드에 제안사항이 있을 것으로 가정하는 것 같다.그렇게 하지 않으면, 그것은 오류를 범하게 된다.그 설명에 100% 자신이 없었지만, 위에서 언급한 변화들이 나를 위해 고쳐주었다.

http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE

이것이 도움이 되기를!

안드로이드폰에서 다음 주소로 이동하십시오.
설정 -> 애플리케이션 관리자 -> 모두 -> 삼성 키보드에서 "캐시 지우기"를 클릭하십시오.
(이 응용 프로그램에서 수집된 모든 데이터 삭제).

기본 Android 키보드를 사용해 보십시오. 그러면 사라집니다.

CreateOptionsMenu 및 onCreate에 대한 다음 메서드에 대한 MainAcitivity 값을 전달했음을 분명히 하십시오.

개발자가 "return super.onCreateOptionsMenu(메뉴)" 문을 삭제하고 "return true"로 변경한 경우도 있다.

이 일은 모든 기기에서 나에게 효과가 있었다.

    <EditText
        android:maxLines="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="15sp"
        android:layout_centerVertical="true"
        android:textColor="#000"
        android:id="@+id/input_search"
        android:background="@null"
        android:inputType="text"
        android:hint="Enter Address, City or Zip Code"
        android:imeOptions="actionSearch"
        />

Java 코드:

mSearchText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
            if(actionId == EditorInfo.IME_ACTION_SEARCH
                    || actionId == EditorInfo.IME_ACTION_DONE
                    || keyEvent.getAction() == KeyEvent.ACTION_DOWN
                    || keyEvent.getAction() == KeyEvent.KEYCODE_ENTER){

                //execute our method for searching
            }

            return false;
        }
    });

나는 똑같은 경고를 받았고 사용하지 않는 @id를 제거하면 경고가 없어지는 것을 발견했다.내게는 @id가 데이터베이스와 연결된 텍스트 뷰의 증가하는 목록과 연관되어 있기 때문에 각 항목에 대한 경고가 있었다.

Masood Moshref가 맞는데, 이 오류는 onCreate() 방법에 "return super.onCreateOptionsMenu(메뉴)"가 부족하여 메뉴의 옵션 메뉴가 잘 준비되지 않아 발생한다.

이 오류를 디버깅하려면 먼저 Android 터미널 / 콘솔로 이동하여 다음 명령을 실행하십시오.

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)

만약 출력이 당신의 앱으로 나온다면...그것은 당신의 앱이 오류를 야기시킨다.빈 곳을 찾아봐.Strings당신이 그 안으로 들어가는.layout.

나는 똑같은 문제를 가지고 있었고 내가 빈 곳을 지나갈 때 그것은 내 잘못이었다.String내 레이아웃에.""" "이 오류는 없어졌다.

콘솔 출력에서 앱을 가져오지 않으면 다른 원인이 될 수 있다(다른 사람이 말했듯이, 안드로이드 키보드).

나는 같은 문제에 직면해 있다.나는 이 문제를 해결하는 데 거의 2주를 낭비할 뻔했다.마침내 나는 나 자신에게 의심을 품게 되었고, 스플래시스크린 & 로그인스크린과 같은 몇몇 시작 파일을 복사하여 붙여넣음으로써 다른 프로젝트를 만들려고 노력했다.

하지만 여전히 같은 코드로 SPAN_EXCLUSE_EXCLUSE를 받고 있었다.

그리고 나서 나는 스플래시 화면에서 핸들러 코드를 제거하고 다시 시도했고 와우 작동했다.Logcat에서 SPAN_EXCOMPLEX_EXCOMPLEX 이슈를 받지 않을 것 입니다.

나는 왜 그럴까? 다른 해결책이 나올 때까지가 아니라 스플래시 스크린에서 핸들러를 제거함으로써 작동하는지 궁금하다.

해결되었는지 여부를 여기서 업데이트해 보십시오.

이 문제가 발생한 화면에서 단추나 텍스트 보기와 같은 요소가 중복(두 번 복사됨)되어 있는지 확인하십시오.나는 이것을 눈치채지 못하고 같은 문제에 직면해야만 했다.

나도 인터넷에서 텍스트를 복사했을 때 이 문제에 부딪쳤어.내 해결책은 추가 처리를 하기 전에 텍스트를 자르거나 서식을 제거하는 것이다.

나도 같은 문제가 있었지만 ListView...나는 잘못된 R.id.listView를 사용하고 있었기 때문에 그것을 해결했다.목록View가 값을 가져야 하는 보기, 나의 경우 listView2에 저장한 문자열이었다.따라서 올바른 코드는 R.id.listView2이었습니다.

나도 같은 문제가 있었는데 코드를 따라 수정했어!

  text = (EditText)findViewById(R.id.TextVoiceeditText); 
  text.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

이 오류는 API URL이 변경되어 발생하기도 한다. 제대로 작동하고 있는 경우 우체부와 c에서 사용하고 있는 URL을 눌러 보십시오.API를 재점검하여 내 문제를 해결했다.

xml 설계에서 를 사용하지 않도록 하십시오.나도 똑같은 프로템을 가지고 있었는데 뷰를 제거했을 때.그것은 완벽하게 작동했다.

예를 들면 다음과 같다.

             <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"                   
                android:hint="Username"
                android:inputType="number"                   
                android:textColor="#fff" />

            <view
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="#f9d7db" />

또한 시행착오 안드로이드:inputType="number"안드로이드:inputType="text"로 변경하거나 또는 필요하지 않을 경우 사용하지 않는 것이 좋다.때때로 키보드가 고착되어 일부 장치에 오류가 발생하기도 한다.

필자의 경우, inputType을 텍스트로/textCapCharactor로 하는 EditText 필드가 이 오류를 포함하고 있었다.나는 백스페이스를 사용하여 이 필드에 입력된 텍스트를 완전히 제거할 때마다 로그캣에서 이것을 발견했다.

내게 효과가 있었던 해결책은 필드의 inputType을 텍스트로 변경하는 것이었다.이 필드는 가장 적합한 유형이었고 더 이상 원하지 않는 오류를 주지 않았기 때문에 제안하지 않았다.

나의 경우 나는 핸드폰의 최근 앱 바로 가기를 클릭하고 모든 앱을 닫는다.이 오류는 코드와 관련이 없기 때문에 이 해결책은 항상 나에게 효과가 있다.

**DONT PUT SET TEXT IN TEXT WATCHER**etSearch.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable) {
            visibleResultList = false
            if (s.toString().length != 0) {
                getSearchSuggetion(no_of_rec, 0, s.toString())
            } else {
               // etSearch.setText("")
            }
            Log.e("text_change","============"+s.toString())
        }
        override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
        }
    })

이 문제를 해결하려면 의 AndroidManifest.xml 파일에 Android:usesCleartextTraffic="true"를 추가하십시오.\app\src\main\AndroidManifest.xml 바로 아래...

여기에 이미지 설명을 입력하십시오.

참조URL: https://stackoverflow.com/questions/13670374/android-span-exclusive-exclusive-spans-cannot-have-a-zero-length

반응형