Birçok dize ilan ile büyük bir Android projem var strings.xml. Kullanılmayan dizeleri kaldırmak istedim strings.xml.
Bunu yapmanın kolay bir yolu var mı?
Birçok dize ilan ile büyük bir Android projem var strings.xml. Kullanılmayan dizeleri kaldırmak istedim strings.xml.
Bunu yapmanın kolay bir yolu var mı?
Yanıtlar:
On Android Studio :
Menü -> Analiz Et -> Denetimi İsme Göre Çalıştır -> Kullanılmayan kaynaklar
Kontrol Dosya maskesi (ler) onay kutusu ve koyun strings.xmlmetin alanına.
tools:ignore="UnusedResources"
İşte oldukça kolay başka bir çözüm. Android Studio menüsünde şu adrese gidin:
Elden Geçirme> Kullanılmayan Kaynaklar dır ... .
Kullanılmayan kaynakların ne olduğunu görmek ve bunları seçici olarak kaldırmak için Önizleme'yi tıklayın .
Benim durumumda "Kullanılmayan Kaynakları Kaldır" ı kullanmama rağmen, "İsme Göre Çalıştır" çalışmadı.
Çözüm:
Neden "Kullanılmayan Kaynakları Kaldır" ın bir şekilde işe yarayıp yaramadığına dair hiçbir fikrim yok.
ADT 16 ile mümkün olduğunca basit yapabilirsiniz. ADT 16'ya güncelleyin ve Android Lint'i kullanın . Gerçekten inanılmaz bir araç. Bu bulabilirsiniz tüm kullanılmayan kaynakları (sadece dizeleri) ve daha birçok. Resmi sitesinden:
Here are some examples of the types of errors that it looks for:
- Missing translations (and unused translations)
- Layout performance problems (all the issues the old layoutopt tool used to find, and more)
- Unused resources
- Inconsistent array sizes (when arrays are defined in multiple configurations)
- Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
- Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
- Usability problems (like not specifying an input type on a text field)
- Manifest errors
and many more.
Warning: The resource R.string.... appears to be unused [UnusedResources] [lint] <string name="...">some text</string>
String.xml dosyasını kontrol etmek için.
Kolay (en azından Eclipse versiyonumda)
Eclipse for Android (v22.6.2-1085508 sürümüne sahibim)
Şimdi strings.xml dosyasını açtığınızda, kullanılmayan dizenin vurgulandığını göreceksiniz.
Diğer olası sorunları çözebilirsiniz.
Android Studio Press'te
i + ctlr + Alt + Üst
Seç -> Kullanılmayan kaynaklar
Kullanılmayan dizeleri ve simgeleri gösterir.
Teşekkürler Mutlu kodlama :)
Android 3.3 ile böyle yaptım.
Deponuzda kaydedilmemiş değişiklikleri kontrol edin.
Not: Projeyi oluşturmayı deneyin. Derleme başarısız olursa, büyük olasılıkla bu strings.xml dosyasının kullanılmayan bazı mizanpaj / menü xmls dosyalarından kaynaklanıyor olması muhtemeldir. Böylece bu mxmls düzeni manuel olarak da silinebilir!
Oluşturun ve çalıştırın. Ölçek!
Bu komut dosyasını projenizin kök dizininden çalıştırın.
`find res / değerleri / *. xml`deki kaynak dosyası için; yapmak
`` grep '' içindeki dize adı için. * / \ 1 / g'`; yapmak
count1 = `grep -rc" R.string. $ {stringname} "src | egrep -v ': 0 $' | wc -l`
count2 = `grep -rc" @string / $ {stringname} "res / düzen | egrep -v ': 0 $' | wc -l`
count3 = `grep -rc" @string / $ {stringname} "res / menü | egrep -v ': 0 $' | wc -l`
count4 = `grep -rc" @string / $ {stringname} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
count5 = `grep -rc" @string / $ {stringname} "res / xml | egrep -v ': 0 $' | wc -l`
eğer [$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; sonra
echo $ resourcefile: $ stringname
fi
tamam
tamam
`res Res / drawable * -type f -name '* içindeki kaynak adı için. ???' '; yapmak
resource = `echo $ kaynakadı | xargs taban adı | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
count1 = `grep -rc" R \ .drawable \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
count2 = `grep -rc" @drawable / $ {resource} "res / düzen | egrep -v ': 0 $' | wc -l`
count3 = `grep -rc" @drawable / $ {resource} "res / çekilebilir * / *. xml | egrep -v ': 0 $' | wc -l`
count4 = `grep -rc" @drawable / $ {resource} "res / menü | egrep -v ': 0 $' | wc -l`
count5 = `grep -rc" @drawable / $ {resource} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
eğer [$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; sonra
echo $ kaynak adı
fi
tamam
"res / layout / *. xml`deki kaynakadı için; yapmak
resource = `echo $ kaynakadı | xargs taban adı | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
count1 = `grep -rc" R \ .layout \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
[$ count1 -eq 0] ise; sonra
echo $ kaynak adı
fi
tamam
Bana bu tür çıktılar veriyor:
res / değerleri / activity_strings.xml: activity_more res / değerler / activity_strings.xml: activity_as_reply_to res / değerler / db_strings.xml: sql_backlog_count res / değerler / db_strings.xml: sql_backlog_update_last_resend ...
Custom scopeseçerek tanımlayabilirsiniz ...Production classesappvalues