코드 줄 이동 및 소실 Eclipse의 XML 편집기 문제


95

때때로 내 코드가 자체적으로 이동하거나 Eclipse XML 편집기에서 사라집니다.

이런!

영향을받는 코드를 강조 표시하면 강조 표시된 줄이 스스로 수정하려고합니다. 그러나 마우스를 반대 방향으로 스크롤하거나 드래그하면 코드가 다시 이동합니다. 본질적으로 나는 오류가없는 파일에서 반복되고, 누락되고 , 끊어진 코드 줄을 표시 할 것입니다. 영향을받은 파일 컴파일되고 닫거나 다시 열면이 문제는 잠시 사라집니다. 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?


추가 : Jeff Axelrod 는 Google에 새로운 버그 보고서에 대한 링크를 제공했습니다 .


나에게 그래픽 문제처럼 들립니다. OS 및 Eclipse 버전은 무엇입니까?
sd

Vista와 Eclipse 3.7.2 Eclipse 버그 사이트를 둘러 보았지만 운이 없었다. 설명 키워드가 누락되었을 수 있습니까?
Sam

2
나는 같은 문제가 있습니다. Win7 Pro 32 비트 및 Eclipse 3.7.2 with android 17.0.0 ... 답변에서 설명한 것과 동일한 시나리오입니다. 버그 보고서도 찾을 수 없습니다.
Pat

나는 또한 이것을 경험하고 있습니다. 그것은 나를 미치게 만듭니다 ... 제 경우에는 eclipse indigo와 함께 Windows XP를 사용합니다. 문제는 항상 그래픽 레이아웃에서 xml 편집기로 전환합니다
mdelolmo

1
여기에 Android 버그 신고가 제출 되었습니다 .
Jeff Axelrod

답변:


32

이 버그는 (최종) ADT 21에서 수정되었습니다. 수정은 이제 몇 분 전에 게시 된 ADT 21 Preview 9에서 사용할 수 있습니다. https://android-review.googlesource.com/#/c/44936/1

이상한 시각적 아티팩트를 얻는 이유는 파일에 끊어진 DOS 줄 끝 (각 캐리지 리턴에 대한 줄 바꿈없이 여러 캐리지 리턴)이 포함되어 있으면 Eclipse가 매우 혼란스러워지기 때문입니다. 이것이 Eclipse 문제 https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421 입니다.

수정에는 두 부분이 있습니다. (1) 첫째, ADT는 더 이상 이러한 \ r \ r 시퀀스를 문서에 도입하지 않도록 수정되었습니다. 이렇게하면 이상한 편집 동작을 유발하는 새 문서를 얻지 못하지만 이러한 줄 끝으로 이전 문서를 소급하여 수정하지 않으므로 문서를 열면 여전히 이상한 편집 동작이 발생합니다.

(2) 둘째, 문서에서 점선 끝을 찾는 새로운 보푸라기 검사가 있습니다. 이것은 점진적으로 실행되므로이 ​​문제가있는 XML 파일을 편집하면 ADT는이 문제에 대한 오류 마커를 추가하고이를 수정하기 위해 문서에서 수술을 수행하는 빠른 수정과 함께 추가합니다.

요컨대 : ADT 21 Preview 9 받기; 프로젝트에서 Lint를 실행하고 점선 끝이 포함 된 파일에 대한 불만 사항이 있는지 찾아보고 발견하면 quickfix를 적용하십시오. 이제부터 레이아웃 편집기로 추가 편집하면 파일 형식이 일관되게 유지됩니다.

참고로, 관련 수정 사항은 다음과 같습니다. https://android-review.googlesource.com/#/c/44936/

SDK 도구 및 Eclipse ADT 플러그인을 쉽게 업데이트하는 방법은 다음과 같습니다. http://tools.android.com/preview-channel

-Tor (Android 도구 팀)


시간을내어 직접 답변 해 주셔서 감사합니다. 지금까지 잘 작동합니다. 소스 코드를 다운로드하고 도구를 로컬에서 빌드하지 않으려는 경우 다음 두 단계 에 따라 미리 빌드 된 버전을 설치하면됩니다. ( 2 단계를 수행하는 방법을 잊은 경우 Eclipse 플러그인 설치를 읽으십시오 .)
Sam

나를 위해 잘 작동합니다. 저는 Eclipse Juno에 있습니다. 도움말> 새 소프트웨어 설치> 이미 설치된 항목으로 이동했습니다. 그런 다음 Google에서 모든 Android 항목을 선택하고 업데이트를 선택하면 이제 삶이 다시 좋아집니다.
rodrigo-silveira

32

몇 가지 테스트 후 "비주얼 레이아웃 편집기에서 편집 한 XML 자동 서식 지정"옵션 (Preferences | Android | Editors)이 여기서 범인 일 수 있음을 발견했습니다.

내 테스트에서 그래픽 레이아웃 디자인 모드에서 속성 (예 : layout_gravity)을 변경하면이 옵션이 켜져있을 때 XML (텍스트) 모드로 돌아갈 때 파일의 시각적 표시가 항상 망가진다는 것을 발견했습니다. 꺼져도 아무런 문제가 없습니다.

그래픽 레이아웃 디자인 모드에서 돌아올 때 XML 형식을 지정하려면 바로 가기 Ctrl+ Shift+ 를 사용하면 F됩니다. 또한 "저장시 포맷"옵션을 사용하는 데 아무런 문제가 없었습니다. 그래픽 레이아웃 모드에서 사용할 때도; 따라서 그래픽 레이아웃 모드에있는 동안 대신 Ctrl+ S를 사용 하여 XML을 저장하고 서식을 지정할 수 있습니다 .

"범위 표시기 표시"또는 "문자를 사용하여 세로 눈금자의 변경 사항 표시"와 같은 다른 편집기 옵션을 사용해 보았지만 이러한 옵션을 활성화 또는 비활성화하는 동작의 차이는 보이지 않았습니다.

마지막으로 파일이 손상된 경우 시각적 표시를 수정합니다. 단축키 : Ctrl+ A, Ctrl+ C, Ctrl+ V를 사용하는 것이 파일을 닫거나 다시 여는 것보다 조금 더 쉽다는 것을 알았습니다 . 이것은 모두 선택, 복사, 붙여 넣기를 만드는 것과 같습니다. 전체 XML 파일을 효과적으로 복사합니다.


4
ADT 버전 20120624 ... 및 Indigo 서비스 릴리스 2 및 SDK 도구 Rev 20을 사용하고 "XML 자동 서식 지정 ..."이 활성화되지 않은 상태에서도 여전히 줄이 사라지고 다른 줄로 바뀝니다.
Brian

1
Juno를 사용해보십시오. 지금은 Juno로 더 이상이 버그를 재현 할 수 없습니다. 그러나 Juno에는 다른 버그도 있습니다. 예를 들어, 한 번에 두 개의 XML 파일이 열린 상태에서 삭제 키가 잘못된 파일에서 작동했습니다. 한 파일에서 한 문자를 삭제하려는 대신 다른 파일에서 문자를 삭제하는 것이 었습니다. 그러나 백 스페이스 키는 괜찮 았습니다. 가끔씩 에뮬레이터에서 EXE를 실행하려고 할 때 힙 공간 부족에 대한 오류 메시지가 표시되기 때문에 기본 eclipse.ini 구성도 변경해야합니다. 32 비트 및 64 비트 버전을 모두 확인 했습니까?
SylvainL

32 비트 버전 만 사용하고 있다고 생각합니다.
Brian

이 오류가 발생하는 빈도를 줄이기 때문에 현재까지 가장 좋은 답변이지만 문제를 제거하지는 못하므로 질문이 여전히 열려 있습니다.

1
가끔이 문제가 발생하지만 그래픽 편집기에서는 발생하지 않습니다. 대신 AndroidManifest.xml 파일에 있습니다. 다른 편집기를 사용합니다. 이것은 최신 버전 인 Juno입니다.하지만 최근에는 Android 애플리케이션에서 작업 할 시간이 많지 않았기 때문에 확실히 알 수 없습니다.
SylvainL

12

Juno (Eclipse 4.2.0, ADT r20)에서이 버그가 계속 발생합니다.

내 수정 사항 : 창-> 환경 설정-> Android-> 편집기로 이동합니다. 나는 모두가 "표준 안드로이드 XML ... 사용하여 형식의 XML""들여 쓰기를 사용하여 이클립스 설정을 ...." 확인. 이것은 나를 위해 문제를 해결했습니다.


1
아니요. "표준 Android XML을 사용하여 XML 형식 지정 ..."을 선택 취소하면됩니다. 그것은 이상한 XML 결함을 고칠 것이지만 또한 Eclipse 규칙을 따라야합니다.
tom_mai78101

개인적으로 저는 Eclipse 컨벤션을 선호합니다. Android 는 공백을 앞에 둘지 여부를 결정하기 위해 열린 태그 닫는 대괄호 ( >)와 독립형 태그 닫는 대괄호 ( />)를 구분하지 않습니다 (옵션은 둘 다로 제한되거나 둘 다로 제한됨). 사소한 문제처럼 보이지만 어떤 이유에서인지 매우 짜증이납니다.
JAB 2013 년

12

편집 : 더 빠른 방법을 포함하므로 맨 위로 가져 왔습니다.

Ctrl+ F -> 다음과 같이 채우십시오.

  1. "찾기"          "\ r \ r \ n"
  2. "바꾸기"    "\ r \ n"
  3. 스위치 "정규 표현식을"ON
  4. 히트 "모두 바꾸기" 버튼을
  5. Ctrl+A
  6. 텍스트를 선택 취소합니다.
  7. 행복하세요 =)

원본이 여기에 있음 : 문제를 해결할 수 있다면 그 문제를 숨기지 마십시오. 때로는 XML 파일을 닫아도 도움이되지 않았습니다.

수정을 위해 그 이유를 살펴 보겠습니다. 먼저 "공백 문자 표시"를 켜십시오 ( 창> 환경 설정> 일반> 편집기> 텍스트 편집기> 공백 문자 표시 ).

그런 다음 XML 파일로 돌아갑니다.

여기에 이미지 설명 입력

크기가 조정 된 이미지에서 "\ n"-기호 색상의 차이를 볼 수 있습니다.

그런 다음 더 어두운 기호에 커서를 놓습니다.
여기에 이미지 설명 입력

보세요, 두 줄이 선택되었습니다 0o ... 그게 이유 일 수 있습니다!

삭제하고 "\ n"기호를 추가하려면 "Enter"또는 "Return"버튼을 누르십시오. 여기에 이미지 설명 입력
도움이 되었기를 바랍니다.


또한 endline의 다른 기호를 찾을 수 있습니다.
여기에 이미지 설명 입력


그것도 삭제하면 XML이 멋지게 보입니다!

PS 하이퍼 링크에 대해 죄송합니다. 저는 초보자이므로 이미지 또는 2 개 이상의 링크를 업로드 할 수 없습니다. 그래서 추가 사진없이 포인트를 얻을 수 있기를 바랍니다;)

투표하는 사람에게 PPS Thx, 이제 이미지와 함께 제공 할 수 있습니다.


감사합니다. 나는 가장 많이 투표 한 댓글을 작동시킬 수 없었지만 이것은 훌륭하게 작동했습니다.
공공 정적 무효

4

나는 똑같은 어려움을 겪었고 마침내 해결책을 찾았습니다 Source/Cleanup Document. 편집기에서 마우스 오른쪽 버튼을 클릭하고 .


0

나는 같은 문제가 있었다. 다음 단계가 해결책이었습니다. 링크는 다른 사람들을 위해 일한 것을 제안합니다.

  1. 환경 설정-> 키로 이동하십시오.
  2. 복사, 붙여 넣기 및 자르기 바인딩 해제 ( "적용"을 누른 다음 "확인")
  3. 1 단계 반복
  4. 2 단계에서 바인딩되지 않은 명령을 복원합니다 (잘라내기를 복원하지는 않았지만 괜찮을 것이라고 확신합니다)

3 개의 명령 각각에 대해 2 개의 바인딩이 있습니다.

  1. 복사 및 붙여 넣기 모두에 대한 2 차 기능 바인딩 해제 (ctl + c / ctl + v [복사 / 붙여 넣기] 바인딩 유지)

이 시점에서 복사 / 붙여 넣기를 수행하려면 2 개의 바인딩 만 설정해야합니다 (예 : ctl + c / ctl + v).

  1. 적용을 누르십시오-> 확인

이 솔루션은 여기 에서 찾았 습니다 .


0

이 버그가 새 버전의 ADT (수정에 필수이며 버그가 자주 나타나지 않아야 함)에 나타나면 Lint 도구를 사용하여 수정하십시오.

Lint 경고에서 찾아 Lint 경고 목록의 오른쪽 상단 모서리에있는 노란색 전구 아이콘을 클릭 합니다.

누군가를 도울 수 있기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.