2013-05-21 18 views
10

Recentemente ho trasferito il mio spazio di lavoro su un'altra workstation, quindi l'errore "aapt.exe ha smesso di funzionare" è stato mostrato.aapt.exe ha smesso di funzionare

Ho letto alcune risposte per deselezionare Build Automatically, aggiornare il mio SDK o rendere Android Build Output su Normal, quindi l'arresto si interromperà, beh non è stato. Ho anche cancellato i .metadata del mio spazio di lavoro e fondamentalmente impostato di nuovo le preferenze di Eclipse. Ho copiato aapt.exe dall'altro workstation e sostituito la mia, e questo registro si presentò:

 [2013-05-21 14:36:42 - example] ERROR: Unknown option '--output-text-symbols' 
[2013-05-21 14:36:42 - example] Android Asset Packaging Tool 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] Usage: 
[2013-05-21 14:36:42 - example] aapt l[ist] [-v] [-a] file.{zip,jar,apk} 
[2013-05-21 14:36:42 - example] List contents of Zip-compatible archive. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]] 
[2013-05-21 14:36:42 - example] badging   Print the label and icon for the app declared in APK. 
[2013-05-21 14:36:42 - example] permissions  Print the permissions from the APK. 
[2013-05-21 14:36:42 - example] resources  Print the resource table from the APK. 
[2013-05-21 14:36:42 - example] configurations Print the configurations in the APK. 
[2013-05-21 14:36:42 - example] xmltree   Print the compiled xmls in the given assets. 
[2013-05-21 14:36:42 - example] xmlstrings  Print the strings of the given compiled xml assets. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \ 
[2013-05-21 14:36:42 - example]   [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \ 
[2013-05-21 14:36:42 - example]   [--debug-mode] [--min-sdk-version VAL] [--target-sdk-version VAL] \ 
[2013-05-21 14:36:42 - example]   [--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] \ 
[2013-05-21 14:36:42 - example]   [--rename-manifest-package PACKAGE] \ 
[2013-05-21 14:36:42 - example]   [--rename-instrumentation-target-package PACKAGE] \ 
[2013-05-21 14:36:42 - example]   [--utf16] [--auto-add-overlay] \ 
[2013-05-21 14:36:42 - example]   [--max-res-version VAL] \ 
[2013-05-21 14:36:42 - example]   [-I base-package [-I base-package ...]] \ 
[2013-05-21 14:36:42 - example]   [-A asset-source-dir] [-G class-list-file] [-P public-definitions-file] \ 
[2013-05-21 14:36:42 - example]   [-S resource-sources [-S resource-sources ...]] \ 
[2013-05-21 14:36:42 - example]   [-F apk-file] [-J R-file-dir] \ 
[2013-05-21 14:36:42 - example]   [--product product1,product2,...] \ 
[2013-05-21 14:36:42 - example]   [-c CONFIGS] [--preferred-configurations CONFIGS] \ 
[2013-05-21 14:36:42 - example]   [-o] \ 
[2013-05-21 14:36:42 - example]   [raw-files-dir [raw-files-dir] ...] 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] Package the android resources. It will read assets and resources that are 
[2013-05-21 14:36:42 - example] supplied with the -M -A -S or raw-files-dir arguments. The -J -P -F and -R 
[2013-05-21 14:36:42 - example] options control which files are output. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...] 
[2013-05-21 14:36:42 - example] Delete specified files from Zip-compatible archive. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...] 
[2013-05-21 14:36:42 - example] Add specified files to Zip-compatible archive. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt c[runch] [-v] -S resource-sources ... -C output-folder ... 
[2013-05-21 14:36:42 - example] Do PNG preprocessing and store the results in output folder. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] aapt v[ersion] 
[2013-05-21 14:36:42 - example] Print program version. 
[2013-05-21 14:36:42 - example] 
[2013-05-21 14:36:42 - example] Modifiers: 
[2013-05-21 14:36:42 - example] -a print Android-specific data (resources, manifest) when listing 
[2013-05-21 14:36:42 - example] -c specify which configurations to include. The default is all 
[2013-05-21 14:36:42 - example]  configurations. The value of the parameter should be a comma 
[2013-05-21 14:36:42 - example]  separated list of configuration values. Locales should be specified 
[2013-05-21 14:36:42 - example]  as either a language or language-region pair. Some examples: 
[2013-05-21 14:36:42 - example]    en 
[2013-05-21 14:36:42 - example]    port,en 
[2013-05-21 14:36:42 - example]    port,land,en_US 
[2013-05-21 14:36:42 - example]  If you put the special locale, zz_ZZ on the list, it will perform 
[2013-05-21 14:36:42 - example]  pseudolocalization on the default locale, modifying all of the 
[2013-05-21 14:36:42 - example]  strings so you can look for strings that missed the 
[2013-05-21 14:36:42 - example]  internationalization process. For example: 
[2013-05-21 14:36:42 - example]    port,land,zz_ZZ 
[2013-05-21 14:36:42 - example] -d one or more device assets to include, separated by commas 
[2013-05-21 14:36:42 - example] -f force overwrite of existing files 
[2013-05-21 14:36:42 - example] -g specify a pixel tolerance to force images to grayscale, default 0 
[2013-05-21 14:36:42 - example] -j specify a jar or zip file containing classes to include 
[2013-05-21 14:36:42 - example] -k junk path of file(s) added 
[2013-05-21 14:36:42 - example] -m make package directories under location specified by -J 
[2013-05-21 14:36:42 - example] -o create overlay package (ie only resources; expects <overlay-package> in manifest) 
[2013-05-21 14:36:42 - example] -u update existing packages (add new, replace older, remove deleted files) 
[2013-05-21 14:36:42 - example] -v verbose output 
[2013-05-21 14:36:42 - example] -x create extending (non-application) resource IDs 
[2013-05-21 14:36:42 - example] -z require localization of resource attributes marked with 
[2013-05-21 14:36:42 - example]  localization="suggested" 
[2013-05-21 14:36:42 - example] -A additional directory in which to find raw asset files 
[2013-05-21 14:36:42 - example] -G A file to output proguard options into. 
[2013-05-21 14:36:42 - example] -F specify the apk file to output 
[2013-05-21 14:36:42 - example] -I add an existing package to base include set 
[2013-05-21 14:36:42 - example] -J specify where to output R.java resource constant definitions 
[2013-05-21 14:36:42 - example] -M specify full path to AndroidManifest.xml to include in zip 
[2013-05-21 14:36:42 - example] -P specify where to output public resource definitions 
[2013-05-21 14:36:42 - example] -S directory in which to find resources. Multiple directories will be scanned 
[2013-05-21 14:36:42 - example]  and the first match found (left to right) will take precedence. 
[2013-05-21 14:36:42 - example] -0 specifies an additional extension for which such files will not 
[2013-05-21 14:36:42 - example]  be stored compressed in the .apk. An empty string means to not 
[2013-05-21 14:36:42 - example]  compress any files at all. 
[2013-05-21 14:36:42 - example] --debug-mode 
[2013-05-21 14:36:42 - example]  inserts android:debuggable="true" in to the application node of the 
[2013-05-21 14:36:42 - example]  manifest, making the application debuggable even on production devices. 
[2013-05-21 14:36:42 - example] --min-sdk-version 
[2013-05-21 14:36:42 - example]  inserts android:minSdkVersion in to manifest. If the version is 7 or 
[2013-05-21 14:36:42 - example]  higher, the default encoding for resources will be in UTF-8. 
[2013-05-21 14:36:42 - example] --target-sdk-version 
[2013-05-21 14:36:42 - example]  inserts android:targetSdkVersion in to manifest. 
[2013-05-21 14:36:42 - example] --max-res-version 
[2013-05-21 14:36:42 - example]  ignores versioned resource directories above the given value. 
[2013-05-21 14:36:42 - example] --values 
[2013-05-21 14:36:42 - example]  when used with "dump resources" also includes resource values. 
[2013-05-21 14:36:42 - example] --version-code 
[2013-05-21 14:36:42 - example]  inserts android:versionCode in to manifest. 
[2013-05-21 14:36:42 - example] --version-name 
[2013-05-21 14:36:42 - example]  inserts android:versionName in to manifest. 
[2013-05-21 14:36:42 - example] --custom-package 
[2013-05-21 14:36:42 - example]  generates R.java into a different package. 
[2013-05-21 14:36:42 - example] --extra-packages 
[2013-05-21 14:36:42 - example]  generate R.java for libraries. Separate libraries with ':'. 
[2013-05-21 14:36:42 - example] --generate-dependencies 
[2013-05-21 14:36:42 - example]  generate dependency files in the same directories for R.java and resource package 
[2013-05-21 14:36:42 - example] --auto-add-overlay 
[2013-05-21 14:36:42 - example]  Automatically add resources that are only in overlays. 
[2013-05-21 14:36:42 - example] --preferred-configurations 
[2013-05-21 14:36:42 - example]  Like the -c option for filtering out unneeded configurations, but 
[2013-05-21 14:36:42 - example]  only expresses a preference. If there is no resource available with 
[2013-05-21 14:36:42 - example]  the preferred configuration then it will not be stripped. 
[2013-05-21 14:36:42 - example] --rename-manifest-package 
[2013-05-21 14:36:42 - example]  Rewrite the manifest so that its package name is the package name 
[2013-05-21 14:36:42 - example]  given here. Relative class names (for example .Foo) will be 
[2013-05-21 14:36:42 - example]  changed to absolute names with the old package so that the code 
[2013-05-21 14:36:42 - example]  does not need to change. 
[2013-05-21 14:36:42 - example] --rename-instrumentation-target-package 
[2013-05-21 14:36:42 - example]  Rewrite the manifest so that all of its instrumentation 
[2013-05-21 14:36:42 - example]  components target the given package. Useful when used in 
[2013-05-21 14:36:42 - example]  conjunction with --rename-manifest-package to fix tests against 
[2013-05-21 14:36:42 - example]  a package that has been renamed. 
[2013-05-21 14:36:42 - example] --product 
[2013-05-21 14:36:42 - example]  Specifies which variant to choose for strings that have 
[2013-05-21 14:36:42 - example]  product variants 
[2013-05-21 14:36:42 - example] --utf16 
[2013-05-21 14:36:42 - example]  changes default encoding for resources to UTF-16. Only useful when API 
[2013-05-21 14:36:42 - example]  level is set to 7 or higher where the default encoding is UTF-8. 
[2013-05-21 14:36:42 - example] --non-constant-id 
[2013-05-21 14:36:42 - example]  Make the resources ID non constant. This is required to make an R java class 
[2013-05-21 14:36:42 - example]  that does not contain the final value but is used to make reusable compiled 
[2013-05-21 14:36:42 - example]  libraries that need to access resources. 
[2013-05-21 14:36:42 - example] --ignore-assets 
[2013-05-21 14:36:42 - example]  Assets to be ignored. Default pattern is: 
[2013-05-21 14:36:42 - example]  !.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~ 

In sostanza, i file src del mio progetto sono errori su R dal aapt.exe si blocca e non può generare R, basando da questo link.

Chiunque abbia riscontrato questo tipo di problema e risolto, per favore dimmi.

+0

che misura il progetto ha un altro file di progetto build.xml o che tenta di passare l'argomento '--output-text-symbols' all'invocazione aapt? questa è la cosa specifica che ti ostacola. forse stavi usando una versione di 'aapt' che permetteva questo sull'altra workstation, ma la versione sulla workstation che stai usando non la supporta. –

+0

Poiché il progetto che ho realizzato per la prima volta era Eclipse Indigo, funzionava perfettamente. Fino a quando non l'ho importato con Eclipse Juno, questo problema ha mostrato. Quello che ho fatto è stato di ripristinare di nuovo il mio Eclipse in Indigo perché questa configurazione del progetto funzionasse. –

risposta

22

Rimuovere id dallo stile come qui @ + id poi costruire di nuovo si ottiene il successo ...

<item name="android:id">@+id/calender</item> 
+1

mi hai salvato la vita! –

+8

per me era nel ** menu ** – DeltaCap

+0

per me era tabhost – TecHunter

0

ho ottenuto "aapt.exe smesso di funzionare", perché non avere i caratteri speciali sfuggito nel codice HTML memorizzato in. file xml nella cartella/res/values.

Quindi, cercare la fuga i caratteri speciali nelle stringhe (@ -> \ @, "-> \", etc.)

1

ho ottenuto questo errore nell'inserire icona immagine da ActionBar.

Ho risolto questo problema aggiungendo un'immagine .png invece di .jpg.

0

Per me, il problema era con cose come queste:

android:title="@android:string/chat" 

ho cambiamento per questo:

android:title="@string/chat" 
3

Per me il problema era in un file XML Menu

ho semplicemente ID sostituito con + id che cambia:

<item 
    android:id="@id/item_reset" 
    android:title="Reset" 
    android:showAsAction="ifRoom"/> 
.210

a

<item 
    android:id="@+id/item_reset" 
    android:title="Reset" 
    android:showAsAction="ifRoom"/> 
5

Questo accade quando si definisce una stringa o di qualsiasi risorsa che non esiste e l'aapt.exe non è riuscito a rilevare l'indisponibilità f quella risorsa

esempio:

<item 
     android:id="@+id/action_reply" 
     android:orderInCategory="100" 
     android:showAsAction="always" 
     android:icon="@drawable/ic_action_reply" 
     android:title="@string/action_reply"/> 

Il stringa action_reply non definita in strings.xml e ADT non è stata in grado di rilevarlo, aapt.exe ha smesso di funzionare

0

Può essere una stringa utilizzata in altro layout e lo hai rimosso.

0

Può essere a causa di qualche errore nella R.menu.your_layout.xml

Problemi correlati