I followed the tutorial here for getting pocketsphinx up and running on Android. I ran the application on a Samsung Galaxy 2 and started speaking.
The problem is that the performance is terrible. I might say "Hello" and the phone will output "That" on the screen. It is definitely detecting noise through the mic because there is output only when I am speaking. I think there must be something wrong with my setup.
Does anyone know why I am getting such bad performance?
public RecognizerTask() {
pocketsphinx
// .setLogfile("/sdcard/Android/data/edu.cmu.pocketsphinx/pocketsphinx.log");
.setLogfile("/mnt/sdcard/edu.cmu.pocketsphinx/pocketsphinx.log");
Config c = new Config();
/*
* In 2.2 and above we can use getExternalFilesDir() or whatever it's
* called
*/
/*
c.setString("-hmm",
"/sdcard/Android/data/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k");
c.setString("-dict",
"/sdcard/Android/data/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.dic");
c.setString("-lm",
"/sdcard/Android/data/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.DMP");
*/
c.setString("-hmm", "/mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k");
c.setString("-dict", "/mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.dic");
c.setString("-lm", "/mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.DMP");
c.setString("-rawlogdir", "/mnt/sdcard/edu.cmu.pocketsphinx"); // Only use it to store the audio
/*
c.setString("-hmm",
"/sdcard/Android/data/edu.cmu.pocketsphinx/hmm/zh/tdt_sc_8k");
c.setString("-dict",
"/sdcard/Android/data/edu.cmu.pocketsphinx/lm/zh_TW/mandarin_notone.dic");
c.setString("-lm",
"/sdcard/Android/data/edu.cmu.pocketsphinx/lm/zh_TW/gigatdt.5000.DMP");
*/
//c.setString("-rawlogdir", "/sdcard/Android/data/edu.cmu.pocketsphinx");
c.setFloat("-samprate", 8000.0);
c.setInt("-maxhmmpf", 2000);
c.setInt("-maxwpf", 10);
c.setInt("-pl_window", 2);
c.setBoolean("-backtrace", true);
c.setBoolean("-bestpath", false);
this.ps = new Decoder(c);
this.audio = null;
this.audioq = new LinkedBlockingQueue<short[]>();
this.use_partials = false;
this.mailbox = Event.NONE;
}
pocketsphinx.log
INFO: cmd_ln.c(691): Parsing command line:
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-alpha 0.97 9.700000e-01
-ascale 20.0 2.000000e+01
-aw 1 1
-backtrace no no
-beam 1e-48 1.000000e-48
-bestpath yes yes
-bestpathlw 9.5 9.500000e+00
-bghist no no
-ceplen 13 13
-cmn current current
-cmninit 8.0 8.0
-compallsen no no
-debug 0
-dict
-dictcase no no
-dither no no
-doublebw no no
-ds 1 1
-fdict
-feat 1s_c_d_dd 1s_c_d_dd
-featparams
-fillprob 1e-8 1.000000e-08
-frate 100 100
-fsg
-fsgusealtpron yes yes
-fsgusefiller yes yes
-fwdflat yes yes
-fwdflatbeam 1e-64 1.000000e-64
-fwdflatefwid 4 4
-fwdflatlw 8.5 8.500000e+00
-fwdflatsfwin 25 25
-fwdflatwbeam 7e-29 7.000000e-29
-fwdtree yes yes
-hmm
-input_endian little little
-jsgf
-kdmaxbbi -1 -1
-kdmaxdepth 0 0
-kdtree
-latsize 5000 5000
-lda
-ldadim 0 0
-lextreedump 0 0
-lifter 0 0
-lm
-lmctl
-lmname default default
-logbase 1.0001 1.000100e+00
-logfn
-logspec no no
-lowerf 133.33334 1.333333e+02
-lpbeam 1e-40 1.000000e-40
-lponlybeam 7e-29 7.000000e-29
-lw 6.5 6.500000e+00
-maxhmmpf -1 -1
-maxnewoov 20 20
-maxwpf -1 -1
-mdef
-mean
-mfclogdir
-min_endfr 0 0
-mixw
-mixwfloor 0.0000001 1.000000e-07
-mllr
-mmap yes yes
-ncep 13 13
-nfft 512 512
-nfilt 40 40
-nwpen 1.0 1.000000e+00
-pbeam 1e-48 1.000000e-48
-pip 1.0 1.000000e+00
-pl_beam 1e-10 1.000000e-10
-pl_pbeam 1e-5 1.000000e-05
-pl_window 0 0
-rawlogdir
-remove_dc no no
-round_filters yes yes
-samprate 16000 1.600000e+04
-seed -1 -1
-sendump
-senlogdir
-senmgau
-silprob 0.005 5.000000e-03
-smoothspec no no
-svspec
-tmat
-tmatfloor 0.0001 1.000000e-04
-topn 4 4
-topn_beam 0 0
-toprule
-transform legacy legacy
-unit_area yes yes
-upperf 6855.4976 6.855498e+03
-usewdphones no no
-uw 1.0 1.000000e+00
-var
-varfloor 0.0001 1.000000e-04
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wbeam 7e-29 7.000000e-29
-wip 0.65 6.500000e-01
-wlen 0.025625 2.562500e-02
INFO: cmd_ln.c(691): Parsing command line:
\
-nfilt 20 \
-lowerf 1 \
-upperf 4000 \
-wlen 0.025 \
-transform dct \
-round_filters no \
-remove_dc yes \
-svspec 0-12/13-25/26-38 \
-feat 1s_c_d_dd \
-agc none \
-cmn current \
-cmninit 56,-3,1 \
-varnorm no
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-alpha 0.97 9.700000e-01
-ceplen 13 13
-cmn current current
-cmninit 8.0 56,-3,1
-dither no no
-doublebw no no
-feat 1s_c_d_dd 1s_c_d_dd
-frate 100 100
-input_endian little little
-lda
-ldadim 0 0
-lifter 0 0
-logspec no no
-lowerf 133.33334 1.000000e+00
-ncep 13 13
-nfft 512 512
-nfilt 40 20
-remove_dc no yes
-round_filters yes no
-samprate 16000 8.000000e+03
-seed -1 -1
-smoothspec no no
-svspec 0-12/13-25/26-38
-transform legacy dct
-unit_area yes yes
-upperf 6855.4976 4.000000e+03
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wlen 0.025625 2.500000e-02
INFO: acmod.c(246): Parsed model-specific feature parameters from /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/feat.params
INFO: feat.c(713): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='current', VARNORM='no', AGC='none'
INFO: cmn.c(142): mean[0]= 12.00, mean[1..12]= 0.0
INFO: acmod.c(167): Using subvector specification 0-12/13-25/26-38
INFO: mdef.c(517): Reading model definition: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/mdef
INFO: mdef.c(528): Found byte-order mark BMDF, assuming this is a binary mdef file
INFO: bin_mdef.c(336): Reading binary model definition: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/mdef
INFO: bin_mdef.c(513): 50 CI-phone, 143047 CD-phone, 3 emitstate/phone, 150 CI-sen, 5150 Sen, 27135 Sen-Seq
INFO: tmat.c(205): Reading HMM transition probability matrices: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/transition_matrices
INFO: acmod.c(121): Attempting to use SCHMM computation module
INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/means
INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/variances
INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(354): 0 variance values floored
INFO: s2_semi_mgau.c(903): Loading senones from dump file /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/sendump
INFO: s2_semi_mgau.c(927): BEGIN FILE FORMAT DESCRIPTION
INFO: s2_semi_mgau.c(1022): Using memory-mapped I/O for senones
INFO: s2_semi_mgau.c(1296): Maximum top-N: 4 Top-N beams: 0 0 0
INFO: phone_loop_search.c(105): State beam -230231 Phone exit beam -115115 Insertion penalty 0
INFO: dict.c(317): Allocating 10319 * 20 bytes (201 KiB) for word entries
INFO: dict.c(332): Reading main dictionary: /mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.dic
INFO: dict.c(211): Allocated 44 KiB for strings, 69 KiB for phones
INFO: dict.c(335): 6212 words read
INFO: dict.c(341): Reading filler dictionary: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/noisedict
INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
INFO: dict.c(344): 11 words read
INFO: dict2pid.c(396): Building PID tables for dictionary
INFO: dict2pid.c(404): Allocating 50^3 * 2 bytes (244 KiB) for word-initial triphones
INFO: dict2pid.c(131): Allocated 30200 bytes (29 KiB) for word-final triphones
INFO: dict2pid.c(195): Allocated 30200 bytes (29 KiB) for single-phone word triphones
INFO: ngram_model_arpa.c(77): No \data\ mark in LM file
INFO: ngram_model_dmp.c(142): Will use memory-mapped I/O for LM file
INFO: ngram_model_dmp.c(196): ngrams 1=5001, 2=436879, 3=418286
INFO: ngram_model_dmp.c(242): 5001 = LM.unigrams(+trailer) read
INFO: ngram_model_dmp.c(288): 436879 = LM.bigrams(+trailer) read
INFO: ngram_model_dmp.c(314): 418286 = LM.trigrams read
INFO: ngram_model_dmp.c(339): 37293 = LM.prob2 entries read
INFO: ngram_model_dmp.c(359): 14370 = LM.bo_wt2 entries read
INFO: ngram_model_dmp.c(379): 36094 = LM.prob3 entries read
INFO: ngram_model_dmp.c(407): 854 = LM.tseg_base entries read
INFO: ngram_model_dmp.c(463): 5001 = ascii word strings read
INFO: ngram_search_fwdtree.c(99): 457 unique initial diphones
INFO: ngram_search_fwdtree.c(147): 0 root, 0 non-root channels, 27 single-phone words
INFO: ngram_search_fwdtree.c(186): Creating search tree
INFO: ngram_search_fwdtree.c(191): before: 0 root, 0 non-root channels, 27 single-phone words
INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 13439
INFO: ngram_search_fwdtree.c(338): after: 457 root, 13311 non-root channels, 26 single-phone words
INFO: ngram_search_fwdflat.c(156): fwdflat: min_ef_width = 4, max_sf_win = 25
INFO: cmd_ln.c(691): Parsing command line:
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-alpha 0.97 9.700000e-01
-ascale 20.0 2.000000e+01
-aw 1 1
-backtrace no no
-beam 1e-48 1.000000e-48
-bestpath yes yes
-bestpathlw 9.5 9.500000e+00
-bghist no no
-ceplen 13 13
-cmn current current
-cmninit 8.0 8.0
-compallsen no no
-debug 0
-dict
-dictcase no no
-dither no no
-doublebw no no
-ds 1 1
-fdict
-feat 1s_c_d_dd 1s_c_d_dd
-featparams
-fillprob 1e-8 1.000000e-08
-frate 100 100
-fsg
-fsgusealtpron yes yes
-fsgusefiller yes yes
-fwdflat yes yes
-fwdflatbeam 1e-64 1.000000e-64
-fwdflatefwid 4 4
-fwdflatlw 8.5 8.500000e+00
-fwdflatsfwin 25 25
-fwdflatwbeam 7e-29 7.000000e-29
-fwdtree yes yes
-hmm
-input_endian little little
-jsgf
-kdmaxbbi -1 -1
-kdmaxdepth 0 0
-kdtree
-latsize 5000 5000
-lda
-ldadim 0 0
-lextreedump 0 0
-lifter 0 0
-lm
-lmctl
-lmname default default
-logbase 1.0001 1.000100e+00
-logfn
-logspec no no
-lowerf 133.33334 1.333333e+02
-lpbeam 1e-40 1.000000e-40
-lponlybeam 7e-29 7.000000e-29
-lw 6.5 6.500000e+00
-maxhmmpf -1 -1
-maxnewoov 20 20
-maxwpf -1 -1
-mdef
-mean
-mfclogdir
-min_endfr 0 0
-mixw
-mixwfloor 0.0000001 1.000000e-07
-mllr
-mmap yes yes
-ncep 13 13
-nfft 512 512
-nfilt 40 40
-nwpen 1.0 1.000000e+00
-pbeam 1e-48 1.000000e-48
-pip 1.0 1.000000e+00
-pl_beam 1e-10 1.000000e-10
-pl_pbeam 1e-5 1.000000e-05
-pl_window 0 0
-rawlogdir
-remove_dc no no
-round_filters yes yes
-samprate 16000 1.600000e+04
-seed -1 -1
-sendump
-senlogdir
-senmgau
-silprob 0.005 5.000000e-03
-smoothspec no no
-svspec
-tmat
-tmatfloor 0.0001 1.000000e-04
-topn 4 4
-topn_beam 0 0
-toprule
-transform legacy legacy
-unit_area yes yes
-upperf 6855.4976 6.855498e+03
-usewdphones no no
-uw 1.0 1.000000e+00
-var
-varfloor 0.0001 1.000000e-04
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wbeam 7e-29 7.000000e-29
-wip 0.65 6.500000e-01
-wlen 0.025625 2.562500e-02
INFO: cmd_ln.c(691): Parsing command line:
\
-nfilt 20 \
-lowerf 1 \
-upperf 4000 \
-wlen 0.025 \
-transform dct \
-round_filters no \
-remove_dc yes \
-svspec 0-12/13-25/26-38 \
-feat 1s_c_d_dd \
-agc none \
-cmn current \
-cmninit 56,-3,1 \
-varnorm no
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-alpha 0.97 9.700000e-01
-ceplen 13 13
-cmn current current
-cmninit 8.0 56,-3,1
-dither no no
-doublebw no no
-feat 1s_c_d_dd 1s_c_d_dd
-frate 100 100
-input_endian little little
-lda
-ldadim 0 0
-lifter 0 0
-logspec no no
-lowerf 133.33334 1.000000e+00
-ncep 13 13
-nfft 512 512
-nfilt 40 20
-remove_dc no yes
-round_filters yes no
-samprate 16000 8.000000e+03
-seed -1 -1
-smoothspec no no
-svspec 0-12/13-25/26-38
-transform legacy dct
-unit_area yes yes
-upperf 6855.4976 4.000000e+03
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wlen 0.025625 2.500000e-02
INFO: acmod.c(246): Parsed model-specific feature parameters from /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/feat.params
INFO: feat.c(713): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='current', VARNORM='no', AGC='none'
INFO: cmn.c(142): mean[0]= 12.00, mean[1..12]= 0.0
INFO: acmod.c(167): Using subvector specification 0-12/13-25/26-38
INFO: mdef.c(517): Reading model definition: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/mdef
INFO: mdef.c(528): Found byte-order mark BMDF, assuming this is a binary mdef file
INFO: bin_mdef.c(336): Reading binary model definition: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/mdef
INFO: bin_mdef.c(513): 50 CI-phone, 143047 CD-phone, 3 emitstate/phone, 150 CI-sen, 5150 Sen, 27135 Sen-Seq
INFO: tmat.c(205): Reading HMM transition probability matrices: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/transition_matrices
INFO: acmod.c(121): Attempting to use SCHMM computation module
INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/means
INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/variances
INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(294): 256x13
INFO: ms_gauden.c(354): 0 variance values floored
INFO: s2_semi_mgau.c(903): Loading senones from dump file /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/sendump
INFO: s2_semi_mgau.c(927): BEGIN FILE FORMAT DESCRIPTION
INFO: s2_semi_mgau.c(1022): Using memory-mapped I/O for senones
INFO: s2_semi_mgau.c(1296): Maximum top-N: 4 Top-N beams: 0 0 0
INFO: phone_loop_search.c(105): State beam -230231 Phone exit beam -115115 Insertion penalty 0
INFO: dict.c(317): Allocating 10319 * 20 bytes (201 KiB) for word entries
INFO: dict.c(332): Reading main dictionary: /mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.dic
INFO: dict.c(211): Allocated 44 KiB for strings, 69 KiB for phones
INFO: dict.c(335): 6212 words read
INFO: dict.c(341): Reading filler dictionary: /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k/noisedict
INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
INFO: dict.c(344): 11 words read
INFO: dict2pid.c(396): Building PID tables for dictionary
INFO: dict2pid.c(404): Allocating 50^3 * 2 bytes (244 KiB) for word-initial triphones
INFO: dict2pid.c(131): Allocated 30200 bytes (29 KiB) for word-final triphones
INFO: dict2pid.c(195): Allocated 30200 bytes (29 KiB) for single-phone word triphones
INFO: ngram_model_arpa.c(77): No \data\ mark in LM file
INFO: ngram_model_dmp.c(142): Will use memory-mapped I/O for LM file
INFO: ngram_model_dmp.c(196): ngrams 1=5001, 2=436879, 3=418286
INFO: ngram_model_dmp.c(242): 5001 = LM.unigrams(+trailer) read
INFO: ngram_model_dmp.c(288): 436879 = LM.bigrams(+trailer) read
INFO: ngram_model_dmp.c(314): 418286 = LM.trigrams read
INFO: ngram_model_dmp.c(339): 37293 = LM.prob2 entries read
INFO: ngram_model_dmp.c(359): 14370 = LM.bo_wt2 entries read
INFO: ngram_model_dmp.c(379): 36094 = LM.prob3 entries read
INFO: ngram_model_dmp.c(407): 854 = LM.tseg_base entries read
INFO: ngram_model_dmp.c(463): 5001 = ascii word strings read
INFO: ngram_search_fwdtree.c(99): 457 unique initial diphones
INFO: ngram_search_fwdtree.c(147): 0 root, 0 non-root channels, 27 single-phone words
INFO: ngram_search_fwdtree.c(186): Creating search tree
INFO: ngram_search_fwdtree.c(191): before: 0 root, 0 non-root channels, 27 single-phone words
INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 13439
INFO: ngram_search_fwdtree.c(338): after: 457 root, 13311 non-root channels, 26 single-phone words
INFO: ngram_search_fwdflat.c(156): fwdflat: min_ef_width = 4, max_sf_win = 25
And a link to the log file and .raw files
dl.dropbox.com/s/3dkueyz4wgx174z/pocketsphinx.zip?dl=1
Since a couple of month ago I've been working with Android developing in Eclipse and AndEngine. I haven't had any problems to export my project until a couple of weeks ago when I suddenly got an error when I tried to export my project. The error only occurs when AndEngine (or any of its extensions) is added in the project's library. I have searched for a solution day and night now and I hope someone can help me! I do not know if it’s only AndEngine or if I can’t export just because I have something added in the library.
I have installed Eclipse in two completely different systems - one Windows, the other Linux Mint - no one works!
This is how I do:
I create a new android project, including an activity. I try to export it - it works. After that, I add AndEngine through properties>Android>Library. I try to export - I get an error - "Conversion to Dalvik format failed with error 1" in Windows 7 and in Linux Eclipse crashes.
In Linux Eclipse creates a log-file, but I'm not skilled enough to interpret it myself ... :-/
Perhaps it is something with the latest updates of the Android sdk or something like that ... I do not know. And the strange thing is that it I seem to be the only one getting this error - on two different systems! Am I doing anything wrong or what is this?!
If anyone would like to help I would be so happy I do not know what to do!
Johan
Here is the error log that I got:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0x7) at pc=0x00007f7ab35c053e, pid=2405, tid=140164621686528
#
# JRE version: 6.0_24-b24
# Java VM: OpenJDK 64-Bit Server VM (20.0-b12 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea6 1.11.1
# Distribution: Ubuntu 12.04 LTS, package 6b24-1.11.1-4ubuntu3
# Problematic frame:
# C [libzip.so+0x453e] Java_java_util_zip_ZipEntry_initFields+0xc3e
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x00007f7ab4a2b800): JavaThread "ModalContext" [_thread_in_native, id=2683, stack(0x00007f7a9e6c5000,0x00007f7a9e7c6000)]
siginfo:si_signo=SIGBUS: si_errno=0, si_code=2 (BUS_ADRERR), si_addr=0x00007f7a9ddb4124
Registers:
RAX=0x00007f7a34000fa0, RBX=0x00007f7a9ddb4107, RCX=0x00007f7a34000040, RDX=0x00007f7a34000020
RSP=0x00007f7a9e7c3310, RBP=0x00007f7a9e7c3350, RSI=0x00007f7a34000038, RDI=0x0000000000000003
R8 =0x00007f7a34048100, R9 =0x0000000000000000, R10=0x00007f7ab06f9d78, R11=0x00007f7ab9ef44d0
R12=0x00007f7a34000fa0, R13=0x00007f7a9e7c33c0, R14=0x00007f7a34007e50, R15=0x00007f7a340087f8
RIP=0x00007f7ab35c053e, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e
Top of Stack: (sp=0x00007f7a9e7c3310)
0x00007f7a9e7c3310: 00007f7a9e7c3330 00007f7ab95b7b71
0x00007f7a9e7c3320: 00007f7a34007e50 00007f7a34007e50
0x00007f7a9e7c3330: 000000008433e918 00007f7a9e7c33c0
0x00007f7a9e7c3340: 0000000000000000 00007f7a340087f8
0x00007f7a9e7c3350: 00007f7a9e7c33a0 00007f7ab35c0dea
0x00007f7a9e7c3360: 00007f7ab4a2b800 00007f7a34004cc0
0x00007f7a9e7c3370: 00007f7ab4a2b800 00007f7ab4a2b9d0
0x00007f7a9e7c3380: 00007f7a9e7c33c0 0000000000000029
0x00007f7a9e7c3390: 00007f7a9e7c3818 00007f7a9e7c33c0
0x00007f7a9e7c33a0: 00007f7a9e7c3800 00007f7ab35bf4a9
0x00007f7a9e7c33b0: 0000002900000000 00007f7a34007e50
0x00007f7a9e7c33c0: 65646e612f67726f 75612f656e69676e
0x00007f7a9e7c33d0: 657361422f6f6964 746e456f69647541
0x00007f7a9e7c33e0: 73616c632e797469 0000000000000073
0x00007f7a9e7c33f0: 00000000f9b29a28 00007f7a9e7c33f8
0x00007f7a9e7c3400: 00000000dc3bf5b2 00007f7a9e7c3450
0x00007f7a9e7c3410: 00000000dc3bfeb8 0000000000000000
0x00007f7a9e7c3420: 00000000dc3bf5d8 0000000000000000
0x00007f7a9e7c3430: 00007f7a9e7c3498 00007f7ab05c1a82
0x00007f7a9e7c3440: 00007f7ab05c1a82 00000000dbd92860
0x00007f7a9e7c3450: 0000000000000002 00007f7a9e7c3458
0x00007f7a9e7c3460: 00000000dc3bf7d3 00007f7a9e7c34c8
0x00007f7a9e7c3470: 00000000dc3bfeb8 0000000000000000
0x00007f7a9e7c3480: 00000000dc3bf830 0000000000000000
0x00007f7a9e7c3490: 00007f7a9e7c34c0 00007f7a9e7c3510
0x00007f7a9e7c34a0: 00007f7ab05c1e8d 00000000f9b29f90
0x00007f7a9e7c34b0: 0000000000000002 0000000000000002
0x00007f7a9e7c34c0: 00007f7a9e7c3530 00007f7ab05c196e
0x00007f7a9e7c34d0: 00007f7a9e7c34d0 00007f7ab05c196e
0x00007f7a9e7c34e0: 00000000f9a860c8 00000000f9ac9b70
0x00007f7a9e7c34f0: 00007f7a9e7c34f0 00000000dc3b1448
0x00007f7a9e7c3500: 00007f7a9e7c3568 00007f7ab05c196e
Instructions: (pc=0x00007f7ab35c053e)
0x00007f7ab35c051e: c7 00 00 00 00 00 48 c7 40 30 00 00 00 00 48 c7
0x00007f7ab35c052e: 40 28 00 00 00 00 8b 1b 49 2b 5e 28 49 03 5e 18
0x00007f7ab35c053e: 44 0f b6 7b 1d 0f b6 43 1c 0f b6 53 0c 0f b6 4b
0x00007f7ab35c054e: 0e 44 0f b6 6b 1f 41 c1 e7 08 41 09 c7 0f b6 43
Register to memory mapping:
RAX=0x00007f7a34000fa0 is an unknown value
RBX=0x00007f7a9ddb4107 is an unknown value
RCX=0x00007f7a34000040 is an unknown value
RDX=0x00007f7a34000020 is an unknown value
RSP=0x00007f7a9e7c3310 is pointing into the stack for thread: 0x00007f7ab4a2b800
RBP=0x00007f7a9e7c3350 is pointing into the stack for thread: 0x00007f7ab4a2b800
RSI=0x00007f7a34000038 is an unknown value
RDI=0x0000000000000003 is an unknown value
R8 =0x00007f7a34048100 is an unknown value
R9 =0x0000000000000000 is an unknown value
R10=0x00007f7ab06f9b90 [CodeBlob (0x00007f7ab06f9b90)]
Framesize: 10
R11=0x00007f7ab9ef44d0: <offset 0x1814d0> in /lib/x86_64-linux-gnu/libc.so.6 at 0x00007f7ab9d73000
R12=0x00007f7a34000fa0 is an unknown value
R13=0x00007f7a9e7c33c0 is pointing into the stack for thread: 0x00007f7ab4a2b800
R14=0x00007f7a34007e50 is an unknown value
R15=0x00007f7a340087f8 is an unknown value
Stack: [0x00007f7a9e6c5000,0x00007f7a9e7c6000], sp=0x00007f7a9e7c3310, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libzip.so+0x453e] Java_java_util_zip_ZipEntry_initFields+0xc3e
C [libzip.so+0x4dea] ZIP_GetEntry+0xba
C [libzip.so+0x34a9] Java_java_util_zip_ZipFile_getEntry+0x119
J java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J
j java.util.zip.ZipFile.getInputStream(Ljava/lang/String;)Ljava/io/InputStream;+34
j java.util.zip.ZipFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;+5
j com.android.dx.cf.direct.ClassPathOpener.processArchive(Ljava/io/File;)Z+118
j com.android.dx.cf.direct.ClassPathOpener.processOne(Ljava/io/File;Z)Z+48
j com.android.dx.cf.direct.ClassPathOpener.process()Z+15
j com.android.dx.command.dexer.Main.processOne(Ljava/lang/String;)Z+18
j com.android.dx.command.dexer.Main.processAllFiles()Z+100
j com.android.dx.command.dexer.Main.run(Lcom/android/dx/command/dexer/Main$Arguments;)I+76
v ~StubRoutines::call_stub
V [libjvm.so+0x4afabf] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x29f
V [libjvm.so+0x4aeef5] JavaCalls::call(JavaValue*, methodHandle, JavaCallArguments*, Thread*)+0x25
V [libjvm.so+0x6a8cc7] Reflection::invoke(instanceKlassHandle, methodHandle, Handle, bool, objArrayHandle, BasicType, objArrayHandle, bool, Thread*)+0x667
V [libjvm.so+0x6ab12b] Reflection::invoke_method(oopDesc*, Handle, objArrayHandle, Thread*)+0x16b
V [libjvm.so+0x4f4b08] JVM_InvokeMethod+0x148
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j com.android.ide.eclipse.adt.internal.build.DexWrapper.run(Ljava/lang/String;Ljava/util/Collection;ZLjava/io/PrintStream;Ljava/io/PrintStream;)I+309
j com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(Lorg/eclipse/jdt/core/IJavaProject;Ljava/util/Collection;Ljava/lang/String;)V+138
j com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Lorg/eclipse/core/resources/IProject;Ljava/io/File;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;Lorg/eclipse/core/runtime/IProgressMonitor;)V+780
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Lorg/eclipse/core/runtime/IProgressMonitor;)Z+269
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Lcom/android/ide/eclipse/adt/internal/wizards/export/ExportWizard;Lorg/eclipse/core/runtime/IProgressMonitor;)Z+2
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Lorg/eclipse/core/runtime/IProgressMonitor;)V+10
j org.eclipse.jface.operation.ModalContext$ModalContextThread.run()V+15
v ~StubRoutines::call_stub
V [libjvm.so+0x4afabf] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x29f
V [libjvm.so+0x4aeef5] JavaCalls::call(JavaValue*, methodHandle, JavaCallArguments*, Thread*)+0x25
V [libjvm.so+0x4af3f3] JavaCalls::call_virtual(JavaValue*, KlassHandle, symbolHandle, symbolHandle, JavaCallArguments*, Thread*)+0x1a3
V [libjvm.so+0x4af51f] JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, symbolHandle, symbolHandle, Thread*)+0x4f
V [libjvm.so+0x4e4fd6] thread_entry(JavaThread*, Thread*)+0x86
V [libjvm.so+0x74c098] JavaThread::thread_main_inner()+0x58
V [libjvm.so+0x64bbb2] java_start(Thread*)+0x112
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J
j java.util.zip.ZipFile.getInputStream(Ljava/lang/String;)Ljava/io/InputStream;+34
j java.util.zip.ZipFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;+5
j com.android.dx.cf.direct.ClassPathOpener.processArchive(Ljava/io/File;)Z+118
j com.android.dx.cf.direct.ClassPathOpener.processOne(Ljava/io/File;Z)Z+48
j com.android.dx.cf.direct.ClassPathOpener.process()Z+15
j com.android.dx.command.dexer.Main.processOne(Ljava/lang/String;)Z+18
j com.android.dx.command.dexer.Main.processAllFiles()Z+100
j com.android.dx.command.dexer.Main.run(Lcom/android/dx/command/dexer/Main$Arguments;)I+76
v ~StubRoutines::call_stub
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j com.android.ide.eclipse.adt.internal.build.DexWrapper.run(Ljava/lang/String;Ljava/util/Collection;ZLjava/io/PrintStream;Ljava/io/PrintStream;)I+309
j com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(Lorg/eclipse/jdt/core/IJavaProject;Ljava/util/Collection;Ljava/lang/String;)V+138
j com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Lorg/eclipse/core/resources/IProject;Ljava/io/File;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;Lorg/eclipse/core/runtime/IProgressMonitor;)V+780
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Lorg/eclipse/core/runtime/IProgressMonitor;)Z+269
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Lcom/android/ide/eclipse/adt/internal/wizards/export/ExportWizard;Lorg/eclipse/core/runtime/IProgressMonitor;)Z+2
j com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Lorg/eclipse/core/runtime/IProgressMonitor;)V+10
j org.eclipse.jface.operation.ModalContext$ModalContextThread.run()V+15
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x00007f7a200d1800 JavaThread "Worker-12" [_thread_blocked, id=2718, stack(0x00007f7a9e298000,0x00007f7a9e399000)]
=>0x00007f7ab4a2b800 JavaThread "ModalContext" [_thread_in_native, id=2683, stack(0x00007f7a9e6c5000,0x00007f7a9e7c6000)]
0x00007f7a38001000 JavaThread "[ThreadPool Manager] - Idle Thread" daemon [_thread_blocked, id=2448, stack(0x00007f7a97897000,0x00007f7a97998000)]
0x00007f7ab4761000 JavaThread "Bundle File Closer" daemon [_thread_blocked, id=2447, stack(0x00007f7a9d17a000,0x00007f7a9d27b000)]
0x00007f7a20001000 JavaThread "Worker-6" [_thread_blocked, id=2441, stack(0x00007f7a9da2a000,0x00007f7a9db2b000)]
0x00007f7a3008f800 JavaThread "Worker-5" [_thread_blocked, id=2440, stack(0x00007f7a9db2b000,0x00007f7a9dc2c000)]
0x00007f7a30081800 JavaThread "Worker-4" [_thread_blocked, id=2439, stack(0x00007f7a9dc2c000,0x00007f7a9dd2d000)]
0x00007f7a44019800 JavaThread "Worker-2" [_thread_in_native, id=2437, stack(0x00007f7a9e399000,0x00007f7a9e49a000)]
0x00007f7ab443f000 JavaThread "Java indexing" daemon [_thread_blocked, id=2436, stack(0x00007f7a9de20000,0x00007f7a9df21000)]
0x00007f7a4c040000 JavaThread "Worker-JM" [_thread_blocked, id=2431, stack(0x00007f7a9fafb000,0x00007f7a9fbfc000)]
0x00007f7a4c03b800 JavaThread "[Timer] - Main Queue Handler" daemon [_thread_blocked, id=2430, stack(0x00007f7a9fbfc000,0x00007f7a9fcfd000)]
0x00007f7a4c015800 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=2428, stack(0x00007f7a9fdfe000,0x00007f7a9feff000)]
0x00007f7ab41e4000 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=2427, stack(0x00007f7a9feff000,0x00007f7aa0000000)]
0x00007f7ab41fd800 JavaThread "State Data Manager" daemon [_thread_blocked, id=2426, stack(0x00007f7aa4021000,0x00007f7aa4122000)]
0x00007f7ab41c2800 JavaThread "Framework Active Thread" [_thread_blocked, id=2425, stack(0x00007f7aa4122000,0x00007f7aa4223000)]
0x00007f7ab40a5800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2421, stack(0x00007f7aae3bd000,0x00007f7aae4be000)]
0x00007f7ab40a3800 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=2420, stack(0x00007f7aae4be000,0x00007f7aae5bf000)]
0x00007f7ab40a0800 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=2419, stack(0x00007f7aae5bf000,0x00007f7aae6c0000)]
0x00007f7ab4092800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2418, stack(0x00007f7aae6c0000,0x00007f7aae7c1000)]
0x00007f7ab4080000 JavaThread "Finalizer" daemon [_thread_blocked, id=2417, stack(0x00007f7aaeea4000,0x00007f7aaefa5000)]
0x00007f7ab407e000 JavaThread "Reference Handler" daemon [_thread_blocked, id=2416, stack(0x00007f7aaefa5000,0x00007f7aaf0a6000)]
0x00007f7ab4008000 JavaThread "main" [_thread_in_native, id=2406, stack(0x00007f7aba858000,0x00007f7aba959000)]
Other Threads:
0x00007f7ab4077800 VMThread [stack: 0x00007f7aaf0a6000,0x00007f7aaf1a7000] [id=2415]
0x00007f7ab40a8000 WatcherThread [stack: 0x00007f7aae2bc000,0x00007f7aae3bd000] [id=2422]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
PSYoungGen total 54656K, used 5004K [0x00000000f8000000, 0x00000000fc550000, 0x0000000100000000)
eden space 38720K, 7% used [0x00000000f8000000,0x00000000f82a96f8,0x00000000fa5d0000)
from space 15936K, 14% used [0x00000000fb5c0000,0x00000000fb7f9c88,0x00000000fc550000)
to space 16128K, 0% used [0x00000000fa5d0000,0x00000000fa5d0000,0x00000000fb590000)
PSOldGen total 79168K, used 52829K [0x00000000e8000000, 0x00000000ecd50000, 0x00000000f8000000)
object space 79168K, 66% used [0x00000000e8000000,0x00000000eb3974d0,0x00000000ecd50000)
PSPermGen total 130432K, used 71024K [0x00000000d8000000, 0x00000000dff60000, 0x00000000e8000000)
object space 130432K, 54% used [0x00000000d8000000,0x00000000dc55c010,0x00000000dff60000)
Code Cache [0x00007f7ab05bc000, 0x00007f7ab0e8c000, 0x00007f7ab35bc000)
total_blobs=2339 nmethods=1742 adapters=550 free_code_cache=41736384 largest_free_block=59712
Dynamic libraries:
I had to remove this part ... only 30 000 characters allowed
VM Arguments:
jvm_args: -Xms40m -Xmx384m -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins -XX:MaxPermSize=256m
java_command: /usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar -os linux -ws gtk -arch x86_64 -showsplash -launcher /usr/lib/eclipse/eclipse -name Eclipse --launcher.library /usr/lib/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.dist/eclipse_1408.so -startup /usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar --launcher.overrideVmargs -exitdata f8005 -vm /usr/bin/java -vmargs -Xms40m -Xmx384m -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins -XX:MaxPermSize=256m -jar /usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
USERNAME=johan
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64
SHELL=/bin/bash
DISPLAY=:0.0
Signal Handlers:
SIGSEGV: [libjvm.so+0x7842c0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x7842c0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x648540], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: SIG_IGN, sa_mask[0]=0x00001000, sa_flags=0x10000000
SIGXFSZ: [libjvm.so+0x648540], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x648540], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x6486f0], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x64b210], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x64b210], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x64b210], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x64b210], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
--------------- S Y S T E M ---------------
OS:LinuxMint 13 (maya)
uname:Linux 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64
libc:glibc 2.15 NPTL 2.15
rlimit: STACK 8192k, CORE 0k, NPROC 127501, NOFILE 4096, AS infinity
load average:1.69 1.02 0.47
/proc/meminfo:
MemTotal: 16337780 kB
MemFree: 14311524 kB
Buffers: 75920 kB
Cached: 693268 kB
SwapCached: 0 kB
Active: 1111276 kB
Inactive: 608384 kB
Active(anon): 960444 kB
Inactive(anon): 183040 kB
Active(file): 150832 kB
Inactive(file): 425344 kB
Unevictable: 96 kB
Mlocked: 96 kB
SwapTotal: 16678908 kB
SwapFree: 16678908 kB
Dirty: 5948 kB
Writeback: 0 kB
AnonPages: 951204 kB
Mapped: 124272 kB
Shmem: 192228 kB
Slab: 74556 kB
SReclaimable: 43580 kB
SUnreclaim: 30976 kB
KernelStack: 3008 kB
PageTables: 20856 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 24847796 kB
Committed_AS: 2139640 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 389744 kB
VmallocChunk: 34359345424 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 71668 kB
DirectMap2M: 16615424 kB
CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht
Memory: 4k page, physical 16337780k(14311524k free), swap 16678908k(16678908k free)
vm_info: OpenJDK 64-Bit Server VM (20.0-b12) for linux-amd64 JRE (1.6.0_24-b24), built on Apr 21 2012 01:49:27 by "buildd" with gcc 4.6.3
time: Sun Jun 24 16:12:57 2012
elapsed time: 194 seconds
I just want to make a thing clear:
I can run the application on, for example, my cellphone, via Eclipse - it's the exporting with keystore and that, that doesn't work.
I know this is an old thread, but I seem to have found another solution. Generally, I found that Eclipse would either crash completely or just freeze/hang if I try to export a project that has a dependency on another library project. I've seen this several times with both my own library projects as well as 3rd party ones.
The simple solution I found is turning off automatic build. That is, compete everything, then just before doing "export", uncheck "Build Automatically" under the "Project" menu - and export as usual.
Today I stumbled upon exactly the same problem and I also coulnd't find a solution to it anywhere. It is strange because I have never had this problem before and I have already worked with AndEngine many times. I tried a couple of different things and one of them totally solved the problem although I have no idea why.
Solution:
Don't add the AndEngine to libraries list (through properties -> Android -> Library)
Copy the "libs" directory from AndEngine to your application.
Copy the "andengine.jar" from AndEngine's "bin" directory to some directory in your application.
Close the AndEngine project. You don't need it to do the export anymore.
Right click on your project. Go to: "Properties -> Libraries -> Add JARs" and add the JAR you just copied.
Go to Properties -> "Libraries -> Order and Export" and make sure the JAR file you just added is selected.
It would be great if someone could tell us why this solves the problem and if there are any better solutions.
I have notice that Android NDK (r6b in my case) produce unreasonable big resulting .so files. For example, in my case I have ~150-200 lines of C++ code (6 native methods and 3 C++ simplest classes) and this native code produce 60kb (!) .so with enabled exceptions and RTTI or 12kb .so with disabled exceptions and RTTI. Just to check I have compile hello-jni example included in NDK package and get 10kb .so for single-line native method from this example.
In my opinion it is somehow unreasonable overhead for mobile platform (on my desktop the comparable by size code produce ~10-15 times less .so).
Are there tricks I should know to reduce the binaries size ?
Why there is such overhead for C-only code ?
And why there is even bigger overhead for C++ code with enabled exceptions and RTTI ?
Update #1: readelf output for hello-jni example from NDK
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: ARM
Version: 0x1
Entry point address: 0xc18
Start of program headers: 52 (bytes into file)
Start of section headers: 9344 (bytes into file)
Flags: 0x5000002, has entry point, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 5
Size of section headers: 40 (bytes)
Number of section headers: 19
Section header string table index: 18
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .hash HASH 000000d4 0000d4 0001a4 04 A 2 0 4
[ 2] .dynsym DYNSYM 00000278 000278 000420 10 A 3 3 4
[ 3] .dynstr STRTAB 00000698 000698 0004aa 00 A 0 0 1
[ 4] .rel.dyn REL 00000b44 000b44 000048 08 A 2 0 4
[ 5] .rel.plt REL 00000b8c 000b8c 000030 08 A 2 6 4
[ 6] .plt PROGBITS 00000bbc 000bbc 00005c 04 AX 0 0 4
[ 7] .text PROGBITS 00000c18 000c18 001518 00 AX 0 0 4
[ 8] .rodata PROGBITS 00002130 002130 000014 01 AMS 0 0 4
[ 9] .ARM.extab PROGBITS 00002144 002144 000024 00 A 0 0 4
[10] .ARM.exidx ARM_EXIDX 00002168 002168 0000e0 00 AL 7 0 4
[11] .init_array INIT_ARRAY 00003248 002248 000008 00 WA 0 0 1
[12] .fini_array FINI_ARRAY 00003250 002250 00000c 00 WA 0 0 1
[13] .dynamic DYNAMIC 0000325c 00225c 0000e8 08 WA 3 0 4
[14] .got PROGBITS 00003344 002344 000040 04 WA 0 0 4
[15] .bss NOBITS 00003390 002384 000010 00 WA 0 0 16
[16] .comment PROGBITS 00000000 002384 000036 00 0 0 1
[17] .ARM.attributes ARM_ATTRIBUTES 00000000 0023ba 000029 00 0 0 1
[18] .shstrtab STRTAB 00000000 0023e3 00009b 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
EXIDX 0x002168 0x00002168 0x00002168 0x000e0 0x000e0 R 0x4
LOAD 0x000000 0x00000000 0x00000000 0x02248 0x02248 R E 0x1000
LOAD 0x002248 0x00003248 0x00003248 0x0013c 0x00158 RW 0x1000
DYNAMIC 0x00225c 0x0000325c 0x0000325c 0x000e8 0x000e8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
Section to Segment mapping:
Segment Sections...
00 .ARM.exidx
01 .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text .rodata .ARM.extab .ARM.exidx
02 .init_array .fini_array .dynamic .got .bss
03 .dynamic
04
Dynamic section at offset 0x225c contains 25 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libstdc++.so]
0x00000001 (NEEDED) Shared library: [libm.so]
0x00000001 (NEEDED) Shared library: [libc.so]
0x00000001 (NEEDED) Shared library: [libdl.so]
0x0000000e (SONAME) Library soname: [libhello-jni.so]
0x00000010 (SYMBOLIC) 0x0
0x00000019 (INIT_ARRAY) 0x3248
0x0000001b (INIT_ARRAYSZ) 8 (bytes)
0x0000001a (FINI_ARRAY) 0x3250
0x0000001c (FINI_ARRAYSZ) 12 (bytes)
0x00000004 (HASH) 0xd4
0x00000005 (STRTAB) 0x698
0x00000006 (SYMTAB) 0x278
0x0000000a (STRSZ) 1194 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000003 (PLTGOT) 0x3344
0x00000002 (PLTRELSZ) 48 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0xb8c
0x00000011 (REL) 0xb44
0x00000012 (RELSZ) 72 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x00000016 (TEXTREL) 0x0
0x6ffffffa (RELCOUNT) 7
0x00000000 (NULL) 0x0
Relocation section '.rel.dyn' at offset 0xb44 contains 9 entries:
Offset Info Type Sym.Value Sym. Name
00000c24 00000017 R_ARM_RELATIVE
00003254 00000017 R_ARM_RELATIVE
00003368 00000017 R_ARM_RELATIVE
0000336c 00000017 R_ARM_RELATIVE
00003374 00000017 R_ARM_RELATIVE
00003378 00000017 R_ARM_RELATIVE
00003380 00000017 R_ARM_RELATIVE
00003370 00001015 R_ARM_GLOB_DAT 00000000 __cxa_call_unexpected
0000337c 00003215 R_ARM_GLOB_DAT 00000000 __gnu_Unwind_Find_exid
Relocation section '.rel.plt' at offset 0xb8c contains 6 entries:
Offset Info Type Sym.Value Sym. Name
00003350 00000d16 R_ARM_JUMP_SLOT 00000000 __cxa_begin_cleanup
00003354 00001216 R_ARM_JUMP_SLOT 00000000 memcpy
00003358 00001416 R_ARM_JUMP_SLOT 00000000 __cxa_finalize
0000335c 00001f16 R_ARM_JUMP_SLOT 00000000 abort
00003360 00002a16 R_ARM_JUMP_SLOT 00000000 __cxa_type_match
00003364 00003216 R_ARM_JUMP_SLOT 00000000 __gnu_Unwind_Find_exid
There are no unwind sections in this file.
Symbol table '.dynsym' contains 66 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000c18 0 SECTION LOCAL DEFAULT 7
2: 00003390 0 SECTION LOCAL DEFAULT 15
3: 00001c64 36 FUNC GLOBAL DEFAULT 7 ___Unwind_ForcedUnwind
4: 00001668 164 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_RaiseExcepti
5: 00001b20 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Save_VFP
6: 00001c40 36 FUNC GLOBAL DEFAULT 7 _Unwind_Resume_or_Rethrow
7: 00002248 0 NOTYPE GLOBAL DEFAULT ABS __exidx_end
8: 000011c0 8 FUNC GLOBAL DEFAULT 7 __aeabi_unwind_cpp_pr0
9: 00001d4c 44 FUNC GLOBAL DEFAULT 7 _Unwind_GetRegionStart
10: 00001c40 36 FUNC GLOBAL DEFAULT 7 ___Unwind_Resume_or_Rethr
11: 000033a0 0 NOTYPE GLOBAL DEFAULT ABS _bss_end__
12: 00001c88 36 FUNC GLOBAL DEFAULT 7 _Unwind_Backtrace
13: 00000000 0 NOTYPE WEAK DEFAULT UND __cxa_begin_cleanup
14: 00001b04 20 FUNC GLOBAL DEFAULT 7 __restore_core_regs
15: 00001b40 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Save_VFP_D_1
16: 00000000 0 NOTYPE WEAK DEFAULT UND __cxa_call_unexpected
17: 00000cf0 8 FUNC GLOBAL DEFAULT 7 _Unwind_GetCFA
18: 00000000 0 FUNC GLOBAL DEFAULT UND memcpy
19: 00000c8c 76 FUNC GLOBAL DEFAULT 7 _Unwind_VRS_Set
20: 00000000 0 FUNC GLOBAL DEFAULT UND __cxa_finalize
21: 00003250 0 NOTYPE GLOBAL DEFAULT 12 __FINI_ARRAY__
22: 00003384 0 NOTYPE GLOBAL DEFAULT ABS __bss_start__
23: 00001404 212 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Backtrace
24: 00003390 4 OBJECT GLOBAL DEFAULT 15 __dso_handle
25: 00001b30 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Save_VFP_D
26: 00001798 876 FUNC GLOBAL DEFAULT 7 _Unwind_VRS_Pop
27: 000011b0 8 FUNC WEAK DEFAULT 7 __aeabi_unwind_cpp_pr2
28: 00001c88 36 FUNC GLOBAL DEFAULT 7 ___Unwind_Backtrace
29: 00002168 0 NOTYPE GLOBAL DEFAULT ABS __exidx_start
30: 00001bf8 36 FUNC GLOBAL DEFAULT 7 ___Unwind_RaiseException
31: 00000000 0 FUNC GLOBAL DEFAULT UND abort
32: 00001c1c 36 FUNC GLOBAL DEFAULT 7 ___Unwind_Resume
33: 00001b48 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Restore_WMMX
34: 00001b18 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Restore_VFP
35: 00001c1c 36 FUNC GLOBAL DEFAULT 7 _Unwind_Resume
36: 00000cfc 32 FUNC GLOBAL DEFAULT 7 _Unwind_DeleteException
37: 00000cf8 4 FUNC GLOBAL DEFAULT 7 _Unwind_Complete
38: 000033a0 0 NOTYPE GLOBAL DEFAULT ABS __bss_end__
39: 00003248 0 NOTYPE GLOBAL DEFAULT 11 __INIT_ARRAY__
40: 00001d78 888 FUNC GLOBAL DEFAULT 7 __gnu_unwind_execute
41: 00001b28 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Restore_VFP_
42: 00000000 0 NOTYPE WEAK DEFAULT UND __cxa_type_match
43: 0000172c 108 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Resume
44: 00001b38 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Restore_VFP_
45: 00001bf8 36 FUNC GLOBAL DEFAULT 7 _Unwind_RaiseException
46: 00003384 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
47: 000033a0 0 NOTYPE GLOBAL DEFAULT ABS __end__
48: 000015f4 28 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_ForcedUnwind
49: 0000170c 32 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Resume_or_Re
50: 00000000 0 FUNC WEAK DEFAULT UND __gnu_Unwind_Find_exidx
51: 00001b04 20 FUNC GLOBAL DEFAULT 7 restore_core_regs
52: 00001be4 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Save_WMMXC
53: 00001d04 8 FUNC GLOBAL DEFAULT 7 _Unwind_GetTextRelBase
54: 00000c29 24 FUNC GLOBAL DEFAULT 7 Java_com_example_hellojni
55: 00001d14 56 FUNC GLOBAL DEFAULT 7 _Unwind_GetLanguageSpecif
56: 00000c40 76 FUNC GLOBAL DEFAULT 7 _Unwind_VRS_Get
57: 00001bd0 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Restore_WMMX
58: 000020f0 64 FUNC GLOBAL DEFAULT 7 __gnu_unwind_frame
59: 00001c64 36 FUNC GLOBAL DEFAULT 7 _Unwind_ForcedUnwind
60: 00003384 0 NOTYPE GLOBAL DEFAULT ABS _edata
61: 000033a0 0 NOTYPE GLOBAL DEFAULT ABS _end
62: 00001b8c 0 FUNC GLOBAL DEFAULT 7 __gnu_Unwind_Save_WMMXD
63: 000011b8 8 FUNC WEAK DEFAULT 7 __aeabi_unwind_cpp_pr1
64: 00001d0c 8 FUNC GLOBAL DEFAULT 7 _Unwind_GetDataRelBase
65: 00003384 0 NOTYPE GLOBAL DEFAULT 14 __data_start
Histogram for bucket list length (total of 37 buckets):
Length Number % of total Coverage
0 5 ( 13.5%)
1 14 ( 37.8%) 22.2%
2 9 ( 24.3%) 50.8%
3 6 ( 16.2%) 79.4%
4 2 ( 5.4%) 92.1%
5 1 ( 2.7%) 100.0%
No version information found in this file.
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "5TE"
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align8_needed: Yes
Tag_ABI_align8_preserved: Yes, except leaf SP
Tag_ABI_enum_size: int
You may see the difference from one provided by #Joel F, and especially stuff about stack unwinding (for C++ exceptions ?)
Update #2
The problem is in toolchain included in NDK r6b and in particular it is about of linker. Thanks to #Joel F for glues about previous NDK release. I have installed the NDK r5c alongside of NDK r6b and compare results. Compilers produce the same object files by both toolchains but after linking results are different.
EDIT 3
I was able to reproduce the 10KB hello-jni binary with NDK r6b. I found an awful hack here. Basically put this line in one of your files:
char __aeabi_unwind_cpp_pr0[0];
But your code will be lacking exception handling (which I thought was the point of -fno-exceptions....)
Anyways, this brings libhello-jni.so down to 2228 bytes for me. Still larger than r5c, but a lot less than 10KB.
EDIT 2
Yes it seems like you have a lot of C++ related overhead in your readelf output. Perhaps they changed something between r5c and r6b? There is no C++ code in r5c's hello-jni.c.
I have 160 lines of C code that NDK r5c reduces to a 3.8KB .so. Try the following to see what is responsible for the size:
/path/to/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/<platform>/bin/arm-linux-androideabi-readelf -a libmylib.so
EDIT
I built the hello-jni example with NDK r5c and the resulting libhello-jni.so file is 1588 bytes.
Build command:
ndk-build V=1
Build output: http://pastebin.com/AdRDVbnF (apparently SO has limits on line length or something).
Output from readelf -a libhello-jni.so:
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: ARM
Version: 0x1
Entry point address: 0x2dc
Start of program headers: 52 (bytes into file)
Start of section headers: 1108 (bytes into file)
Flags: 0x5000002, has entry point, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 5
Size of section headers: 40 (bytes)
Number of section headers: 12
Section header string table index: 11
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .hash HASH 000000d4 0000d4 00004c 04 A 2 0 4
[ 2] .dynsym DYNSYM 00000120 000120 0000e0 10 A 3 2 4
[ 3] .dynstr STRTAB 00000200 000200 0000db 00 A 0 0 1
[ 4] .text PROGBITS 000002dc 0002dc 00002c 00 AX 0 0 4
[ 5] .rodata PROGBITS 00000308 000308 000014 00 A 0 0 4
[ 6] .ARM.exidx ARM_EXIDX 0000031c 00031c 000008 00 AL 4 0 4
[ 7] .dynamic DYNAMIC 00001324 000324 000088 08 WA 3 0 4
[ 8] .got PROGBITS 000013ac 0003ac 00000c 04 WA 0 0 4
[ 9] .comment PROGBITS 00000000 0003b8 000012 00 0 0 1
[10] .ARM.attributes ARM_ATTRIBUTES 00000000 0003ca 000029 00 0 0 1
[11] .shstrtab STRTAB 00000000 0003f3 000061 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
EXIDX 0x00031c 0x0000031c 0x0000031c 0x00008 0x00008 R 0x4
LOAD 0x000000 0x00000000 0x00000000 0x00324 0x00324 R E 0x1000
LOAD 0x000324 0x00001324 0x00001324 0x00094 0x00094 RW 0x1000
DYNAMIC 0x000324 0x00001324 0x00001324 0x00088 0x00088 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
Section to Segment mapping:
Segment Sections...
00 .ARM.exidx
01 .hash .dynsym .dynstr .text .rodata .ARM.exidx
02 .dynamic .got
03 .dynamic
04
Dynamic section at offset 0x324 contains 12 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libc.so]
0x00000001 (NEEDED) Shared library: [libstdc++.so]
0x00000001 (NEEDED) Shared library: [libm.so]
0x00000001 (NEEDED) Shared library: [libdl.so]
0x0000000e (SONAME) Library soname: [libhello-jni.so]
0x00000010 (SYMBOLIC) 0x0
0x00000004 (HASH) 0xd4
0x00000005 (STRTAB) 0x200
0x00000006 (SYMTAB) 0x120
0x0000000a (STRSZ) 219 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000000 (NULL) 0x0
There are no relocations in this file.
There are no unwind sections in this file.
Symbol table '.dynsym' contains 14 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 000002dc 0 SECTION LOCAL DEFAULT 4
2: 00000324 0 NOTYPE GLOBAL DEFAULT ABS __exidx_end
3: 00000000 0 FUNC GLOBAL DEFAULT UND __aeabi_unwind_cpp_pr0
4: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS _bss_end__
5: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS __bss_start__
6: 0000031c 0 NOTYPE GLOBAL DEFAULT ABS __exidx_start
7: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS __bss_end__
8: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
9: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS __end__
10: 000002dd 44 FUNC GLOBAL DEFAULT 4 Java_com_example_hellojni
11: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS _edata
12: 000013b8 0 NOTYPE GLOBAL DEFAULT ABS _end
13: 000013b8 0 NOTYPE GLOBAL DEFAULT 8 __data_start
Histogram for bucket list length (total of 3 buckets):
Length Number % of total Coverage
0 0 ( 0.0%)
1 0 ( 0.0%) 0.0%
2 1 ( 33.3%) 16.7%
3 0 ( 0.0%) 16.7%
4 1 ( 33.3%) 50.0%
5 0 ( 0.0%) 50.0%
6 1 ( 33.3%) 100.0%
No version information found in this file.
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "5TE"
Tag_CPU_arch: v5TE
Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align8_needed: Yes
Tag_ABI_align8_preserved: Yes, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_optimization_goals: Aggressive Debug
The NDK toolchain supports C++ exceptions, since NDK r5, however all C++ sources are compiled with -fno-exceptions support by default, for compatibility reasons with previous releases.
To enable it, use the '-fexceptions' C++ compiler flag. This can be done by adding the following to every module definition in your Android.mk:
LOCAL_CPPFLAGS += -fexceptions
More simply, add a single line to your Application.mk, the setting will automatically apply to all your project's NDK modules:
APP_CPPFLAGS += -fexceptions
follow this page
But in NDK r6b, this FLAG is open by default, and can not close.
Don't use c++ exceptions if you want to have a lightweight mobile program. There's a reason c++ features were limited in early versions of the ndk. Android itself uses the subset of c++ that was thought cost effective on a mobile platform, and thats more or less what was originally supported.
Also be sure you are not doing a debug build with symbols included - that could be your hello-jni bloat.