Kod satırlarının taşınması ve kaybolması; Eclipse'in XML Düzenleyicisi ile ilgili sorun


95

Bazen kodum kendi kendine hareket ediyor veya Eclipse XML düzenleyicide kayboluyor.

Eyvah!

Etkilenen kodu vurguladığımda, vurgulanan satırlar kendilerini düzeltmeye çalışıyor. Ancak fareyi ters yönde kaydırdığımda veya sürüklediğimde kod yeniden değişiyor. Aslında, hatasız bir dosyadan görüntülenen yinelenen, eksik ve bozuk kod satırlarına sahip olacağım . Etkilenen dosyalar yapmak derleme ve ben yakın / onları yeniden açarsanız, bu sorunun şu an için kaybolur. Neler olduğuna dair bir fikriniz var mı?


Ek: Jeff Axelrod , Google ile yeni bir hata raporuna bağlantı sağladı .


Bana bir grafik sorunu gibi geliyor. İşletim sisteminiz ve Eclipse sürümünüz nedir?
sd

Vista ve Eclipse 3.7.2 Eclipse hata sitesine baktım ama şansım olmadı. Belki tanımlayıcı bir anahtar kelimeyi kaçırıyorum?
Sam

2
Bendede aynı sorun var. Win7 Pro 32-bit ve Eclipse 3.7.2, android 17.0.0 ile ... Cevabınızda anlattığınız senaryo ile aynı. Herhangi bir hata raporu da bulamıyorum.
Pat

Bunu da yaşıyorum, beni çıldırtıyor ... Benim durumumda, tutulma indigo ile Windows XP kullanmak. Sorun her zaman olur, grafik düzenden xml düzenleyiciye
geçiyorum

1
Android hata raporu burada dosyalandı .
Jeff Axelrod

Yanıtlar:


32

Bu hata (nihayet) ADT 21'de düzeltilmiştir. Düzeltme şimdi ADT 21 Preview 9'da mevcuttur, birkaç dakika önce burada yayınlanmıştır: https://android-review.googlesource.com/#/c/44936/1

Garip görsel kusurlar elde etmenizin nedeni, bir dosya kesik DOS satırı sonları içeriyorsa (her satırbaşı için satırsonu olmadan birden çok satırbaşı dönüşü), Eclipse'in kafasının çok karışık olmasıdır. Bu Eclipse sorunu https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421 .

Düzeltmenin iki bölümü vardır: (1) Birincisi, ADT artık bu dizileri belgeye eklemeyecek şekilde düzeltildi. Bu, garip düzenleme davranışını tetikleyen yeni belgeler almamanızı sağlar, ancak bu satır sonlarına sahip eski belgeleri geriye dönük olarak düzeltmez, bu nedenle, onları açarsanız, yine de garip düzenleme davranışları elde edersiniz.

(2) İkinci olarak, belgelerde kesik çizgi sonlarını arayan yeni bir tüy bırakma kontrolü var. Bu artımlı olarak çalışır, bu nedenle bu sorunu olan bir XML dosyasını düzenlerseniz, ADT bu sorun için bir hata işaretçisi ekleyecektir - belgede düzeltmek için bir hızlı düzeltme ile birlikte.

Kısaca: ADT 21 Preview 9'u edinin; projelerinizde Lint'i çalıştırın ve kesik çizgi sonları içeren dosyalarla ilgili şikayetleri arayın ve bulursa, hızlı düzeltmeyi uygulayın. Şu andan itibaren, mizanpaj düzenleyiciyle yapılacak başka düzenlemeler, dosyaların tutarlı bir şekilde biçimlendirilmesini sağlamalıdır.

Bilginize, ilgili düzeltme burada: https://android-review.googlesource.com/#/c/44936/

SDK Araçlarını ve Eclipse ADT eklentisini kolayca güncelleme talimatları burada: http://tools.android.com/preview-channel

- Tor (Android araçları ekibinden)


Yüz yüze yanıt vermeye zaman ayırdığınız için teşekkürler, şu ana kadar harika çalışıyor! Kaynak kodunu indirmek ve araçları yerel olarak oluşturmak istemeyenler için, önceden oluşturulmuş bir sürümü yüklemek için bu iki adımı izlemeniz yeterlidir . ( İkinci adımı nasıl yapacağınızı unuttuysanız , Eclipse Eklentisini Kurma
Sam

Benim için harika çalışıyor. Eclipse Juno'dayım. Yardım> Yeni yazılım yükle> Halihazırda ne yüklü? Sonra Google'dan tüm Android öğelerini seçtim, Güncelle'yi seçtim ve şimdi hayat yeniden güzel.
rodrigo-silveira

32

Bazı testlerden sonra, "Görsel düzen düzenleyicisi tarafından düzenlenen XML'i otomatik olarak biçimlendir" seçeneğinin (Tercihler | Android | Editörler'de) buradaki suçlu olabileceğini buldum.

Testlerimle, Grafik Düzeni tasarım modundayken bir özelliği değiştirmenin (layout_gravity gibi), bu seçenek AÇIK iken XML (metin) moduna geri döndüğümde dosyanın görsel görüntüsünü her zaman bozduğunu buldum, ancak kapalıyken sorunum yok.

Grafik Düzeni tasarım modundan döndüğünüzde XML'i biçimlendirmek istiyorsanız, sadece Ctrl+ Shift+ kısayolunu kullanın F. Ayrıca, "Kaydederken Biçimlendir" seçeneğini kullanırken herhangi bir sorun görmedim; Grafik Düzeni modunda kullandığım zaman bile; böylece XML'inizi hem kaydetmek hem de biçimlendirmek için Grafik Düzeni modundayken bunun yerine Ctrl+ kullanabilirsiniz S.

"Aralık göstergesini göster" veya "Dikey cetveldeki değişiklikleri göstermek için karakterleri kullan" gibi diğer düzenleyici seçeneklerini denedim, ancak bu seçenekleri etkinleştirirken veya devre dışı bırakırken davranışta herhangi bir fark görmedim.

Son olarak, dosya bozulduğunda görsel görünümünü düzeltmek için; Ctrl+ A, Ctrl+ C, Ctrl+ Kısayolunu kullanmanın Vdosyayı kapatmak / yeniden açmaktan biraz daha kolay olduğunu buldum . Bu, Tümünü Seç, Kopyala, Yapıştır yapmaya eşdeğerdir; tüm XML dosyasını etkin bir şekilde kendi üzerine kopyalamak.


4
ADT sürüm 20120624 ... ve Indigo Service Release 2 ve SDK Tools Rev 20 kullanıldığında ve "XML'i otomatik olarak biçimlendir ..." etkin olmadığında, hala kaybolan ve diğer satırlara dönüşen satırlar var.
Brian

1
Juno ile deneyin. Şu anda bu hatayı Juno ile yeniden oluşturamıyorum. Ancak Juno ile ilgili başka hatalar da var. Örneğin, iki XML dosyası açıkken bir seferde silme anahtarı yanlış dosyaya etki ediyordu: bir dosyadaki bir karakteri silmeye çalışmak bunun yerine diğer dosyadaki bir karakteri silmekti. Ancak, Backspace tuşu sorunsuzdu. Ayrıca varsayılan eclipse.ini yapılandırmasını değiştirmem gerekecek çünkü zaman zaman, emülatörde EXE'yi çalıştırmaya çalışırken yığın alanı eksikliği hakkında bir hata mesajı alıyorum. Hem 32 bit hem de 64 bit sürümleri kontrol ettiniz mi?
SylvainL

Yalnızca 32 bit sürümünü kullandığıma inanıyorum.
Brian

Bu, bugüne kadarki en iyi cevaptır, çünkü bu hatanın ne sıklıkta meydana geldiğini azaltır, ancak onu ortadan kaldırmaz, bu nedenle soru hala açıktır.
Sam

1
Hala bazen bu sorunu yaşıyorum, ancak Grafik Düzenleyicide değil: bunun yerine, AndroidManifest.xml dosyasıyla; başka bir düzenleyici kullanan. Bu en son sürümle - Juno ama itiraf etmeliyim ki son zamanlarda Android uygulamam üzerinde çalışmak için fazla zamanım olmadı, bu yüzden gerçekten emin olamıyorum.
SylvainL

12

Hala Juno'da bu hatayı yaşıyor (Eclipse 4.2.0, ADT r20).

Düzeltmem: Pencere -> Tercihler -> Android -> Düzenleyiciler'e gidin. Hem "Standart Android XML kullanarak XML'yi Biçimlendir ..." hem de "Girinti için Eclipse ayarlarını kullan ...." işaretli. Bu benim için sorunu çözdü.


1
Hayır. "Standart Android XML kullanarak XML biçimlendir ..." seçeneğinin işaretini kaldırmanız yeterlidir. Garip XML hatasını düzeltir, ama aynı zamanda Eclipse kuralına uymanız gerekir.
tom_mai78101

Şahsen ben Eclipse sözleşmesini tercih ediyorum; Android biri, önünde boşluk olup olmayacağını belirlemek için açık etiket kapatma ayracı ( >) ile bağımsız etiket kapatma ayracı ( ) arasında ayrım yapmaz />(seçenek her ikisiyle de sınırlıdır veya hiçbiriyle sınırlıdır). Önemsiz bir konu gibi görünüyor, ancak bazı nedenlerden dolayı oldukça rahatsız edici buluyorum.
JAB

12

DÜZENLEME: daha hızlı yöntem içerir, bu yüzden en üste getirildi:

Ctrl+ F -> şu şekilde doldurun:

  1. "Bul"          "\ r \ r \ n"
  2. "Değiştir"    "\ r \ n"
  3. Anahtar "Düzenli ifadeyi" için ON
  4. İsabet "Tümünü değiştir" butonuna
  5. Ctrl+A
  6. metnin seçimini kaldırın.
  7. mutlu ol =)

Orijinal buradaydı: Düzeltebilirseniz, bu sorunu saklamayın. Bazen XML dosyasını kapatmak bile yardımcı olmadı.

Düzeltmek için nedenine bakalım. Öncelikle "Boşluk Karakterlerini Göster" i Açın ( Pencere> Tercihler> Genel> Düzenleyiciler> Metin Düzenleyicileri> Beyaz boşluk karakterlerini göster )

Ardından XML dosyanıza geri dönün.

görüntü açıklamasını buraya girin

Ölçekli görüntüde "\ n" -sembol renklerinin farkını görebilirsiniz;

sonra imleci daha karanlık olan o sembole getirin.
görüntü açıklamasını buraya girin

bak, 0o iki satır seçildi ... nedeni bu olabilir!

bu yüzden silin ve "\ n" sembolü eklemek için "Enter" veya "Geri Dön" düğmesine basın. görüntü açıklamasını buraya girin
Umarım sana yardımcı olur.


ayrıca bitiş çizgisinin diğer sembolünü de bulabilirsiniz:
görüntü açıklamasını buraya girin


Sadece onu da silin, XML'iniz harika bir görünüme kavuşsun!

PS köprüler için özür dilerim, acemiyim ve SO'da resim veya 2'den fazla bağlantı yükleyemiyorum. umarım ek resimler olmadan puan alırsınız;)

Oy veren adama PPS Thx, şimdi bunu resimlerle sağlayabilirim.


Çok teşekkürler. En çok oylanan yorumu işe alamadım ama bu harika çalıştı.
public static void

4

Aynı zorluğu yaşadım ve sonunda çözümü buldum: Düzenleyicide sağ tıklayın, seçin Source/Cleanup Document.


0

Ben de aynı sorunu yaşadım. Aşağıdaki adımlar çözümdü. Link, başkaları için çalıştığını öne sürüyor.

  1. Tercihlere gidin -> tuşlar
  2. Kopyalama, yapıştırma ve kesme işlemlerinin bağlantısını kaldırın ("uygula" ve ardından "tamam" ı tıklayın)
  3. 1. adımı tekrarlayın
  4. 2. adımdan itibaren bağlanmayan komutları geri yükleyin (Kesmeyi geri yüklemedim, ancak eminim iyi olursunuz)

3 komutun her biri için 2 bağlama olduğuna dikkat edin

  1. Hem kopyalama hem de yapıştırma için ikincil işlevi kaldır (ctl + c / ctl + v [kopyala / yapıştır] bağlı bırakın)

Bu noktada, kopyala / yapıştır yapmak için yalnızca 2 bağlamanız olmalıdır (yani, ctl + c / ctl + v)

  1. Uygula'ya basın -> Tamam

Bu çözüm burada bulundu .


0

Bu hata ADT'nin yeni sürümlerinde göründüğünde (düzeltmek için zorunludur ve hatanın sık görülmemesi gereken yerlerde), düzeltmek için Lint aracını kullanın.

Bunu Lint uyarılarında bulun ve Lint uyarıları listesinin sağ üst köşesindeki sarı ampul simgesine tıklayın .

Umarım birine yardımcı olur

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.