There is a workaround to identify which are the linking errors before it gets frozen.
Go to Right button on the project > Android Toold > Export unsigned application package >
This should show you the errors in the Lint View. In my case, they were missing translations in strings.xml, arrays.xml
here is an example:
"caption" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic), "bg" (Bulgarian), "bn-rBD" (Bengali: Bangladesh), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "en-rGB" (English: United Kingdom), "en-rIN" (English: India), "es" (Spanish), "es-rUS" (Spanish: United States), "et-rEE" (Estonian: Estonia), "eu-rES" (Basque: Spain), "fa" (Persian), "fi" (Finnish), "fr" (French), "fr-rCA" (French: Canada), "gl-rES" (Galician: Spain), "hi" (Hindi), "hr" (Croatian), "hu" (Hungarian), "hy-rAM" (Armenian: Armenia), "in" (Indonesian), "is-rIS" (Icelandic: Iceland), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ka-rGE" (Georgian: Georgia), "kk-rKZ" (Kazakh: Kazakhstan), "km-rKH" (Khmer: Cambodia), "kn-rIN" (Kannada: India), "ko" (Korean), "ky-rKG" (Kyrgyz: Kyrgyzstan), "lo-rLA" (Lao: Lao People's Democratic Republic), "lt" (Lithuanian), "lv" (Latvian), "mk-rMK" (Macedonian: Macedonia, the former Yugoslav Republic of), "ml-rIN" (Malayalam: India), "mn-rMN" (Mongolian: Mongolia), "mr-rIN" (Marathi: India), "ms-rMY" (Malay: Malaysia), "my-rMM" (Burmese: Myanmar), "nb" (Norwegian Bokmål), "ne-rNP" (Nepali: Nepal), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "pt-rBR" (Portuguese: Brazil), "pt-rPT" (Portuguese: Portugal), "ro" (Romanian), "ru" (Russian), "si-rLK" (Sinhala: Sri Lanka), "sk" (Slovak), "sl" (Slovene), "sr" (Serbian), "sv" (Swedish), "sw" (Swahili), "ta-rIN" (Tamil: India), "te-rIN" (Telugu: India), "th" (Thai), "tl" (Tagalog), "tr" (Turkish), "uk" (Ukrainian), "ur-rPK" (Urdu: Pakistan), "uz-rUZ" (Uzbek: Uzbekistan), "vi" (Vietnamese), "zh-rCN" (Chinese: China), "zh-rHK" (Chinese: Hong Kong), "zh-rTW" (Chinese: Taiwan, Province of China), "zu" (Zulu)
Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
If an application has more than one locale, then all the strings declared in one language should also be translated in all other languages.
If the string should not be translated, you can add the attribute translatable="false" on the <string> element, or you can define all your non-translatable strings in a resource file called donottranslate.xml. Or, you can ignore the issue with a tools:ignore="MissingTranslation" attribute.
By default this detector allows regions of a language to just provide a subset of the strings and fall back to the standard language strings. You can require all regions to provide a full translation by setting the environment variable ANDROID_LINT_COMPLETE_REGIONS.
You can tell lint (and other tools) which language is the default language in your res/values/ folder by specifying tools:locale="languageCode" for the root <resources> element in your resource file. (The tools prefix refers to the namespace declaration http://schemas.android.com/tools.)
[]
Here is the way to fix this issue:
Avoid Android Lint complains about not-translated string
Once that the lint errors are fixed, you can get the app running adjusting the memory used in the eclipse.ini as propose here: Unable to execute dex: GC overhead limit exceeded in Eclipse