Good work!
I didnt try to run it, but it looks good, except that you include way too
much in rules.jar:

j@jacob-linux-baerbar:/tmp$ ~/bin/dex2jar-0.0.9.8/dex2jar.sh rules.jar
dex2jar version: translator-0.0.9.8
dex2jar rules.jar -> rules_dex2jar.jar
Done.

j@jacob-linux-baerbar:/tmp$ unzip -l rules_dex2jar.jar
Archive:  rules_dex2jar.jar
  Length      Date    Time    Name
---------  ---------- -----   ----
      468  2012-04-11 15:35   android/annotation/SuppressLint.class
      395  2012-04-11 15:35   android/annotation/TargetApi.class
      165  2012-04-11 15:35   in/arink/gsoc/pair/BuildConfig.class
      204  2012-04-11 15:35   in/arink/gsoc/pair/R$attr.class
      267  2012-04-11 15:35   in/arink/gsoc/pair/R$drawable.class
      256  2012-04-11 15:35   in/arink/gsoc/pair/R$layout.class
      289  2012-04-11 15:35   in/arink/gsoc/pair/R$string.class
      358  2012-04-11 15:35   in/arink/gsoc/pair/R.class
      789  2012-04-11 15:35
or/apertium/transfer/generated/GeneratedTransferBase.class
     2202  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_antaux_t2x.class
    43108  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t1x.class
    12690  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t2x.class
     2132  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t3x.class
      503  2012-04-11 15:35
or/apertium/interchunk/ApertiumInterchunk$CommandLineParams.class
     3660  2012-04-11 15:35
or/apertium/interchunk/ApertiumInterchunk.class
     1049  2012-04-11 15:35
or/apertium/interchunk/Interchunk$InterchunkMode.class
     8823  2012-04-11 15:35   or/apertium/interchunk/Interchunk.class
     1567  2012-04-11 15:35   or/apertium/interchunk/InterchunkWord.class
     1066  2012-04-11 15:35
or/apertium/lttoolbox/Alphabet$IntegerPair.class
     7688  2012-04-11 15:35   or/apertium/lttoolbox/Alphabet.class
     1976  2012-04-11 15:35   or/apertium/lttoolbox/Compression.class
      464  2012-04-11 15:35   or/apertium/lttoolbox/Expander$EntList.class
      952  2012-04-11 15:35   or/apertium/lttoolbox/Pair.class
     1198  2012-04-11 15:35   or/apertium/transfer/ApertiumRE.class
     3934  2012-04-11 15:35   or/apertium/transfer/ApertiumTransfer.class
     2104  2012-04-11 15:35   or/apertium/transfer/BufferT.class
     3005  2012-04-11 15:35   or/apertium/transfer/MatchExe.class
     1295  2012-04-11 15:35   or/apertium/transfer/MatchNode.class
     2028  2012-04-11 15:35   or/apertium/transfer/MatchState.class
      345  2012-04-11 15:35   or/apertium/transfer/MyGetOpt.class
     9374  2012-04-11 15:35   or/apertium/transfer/Transfer.class
     3500  2012-04-11 15:35   or/apertium/transfer/TransferClassLoader.class
     1122  2012-04-11 15:35
or/apertium/transfer/TransferToken$TransferTokenType.class
      542  2012-04-11 15:35   or/apertium/transfer/TransferToken.class
     2599  2012-04-11 15:35   or/apertium/transfer/TransferWord.class
     1329  2012-04-11 15:35   or/apertium/transfer/WordList.class
     3275  2012-04-11 15:35
or/apertium/transfer/compile/ApertiumTransferCompile.class
... etc


Basically the rule file should *only* contain
     2202  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_antaux_t2x.class
    43108  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t1x.class
    12690  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t2x.class
     2132  2012-04-11 15:35   in/arink/rule/eo_en/eo_en_t3x.class

Even the superclass
(org/apertium/transfer/generated/GeneratedTransferBase.class) *should* not
be in the language pair dex file: The loaded classes *should* link with the
build in classes when loaded as youve coded below:


            final String libPath =
Environment.getExternalStorageDirectory() + "/apertium/"+MODE+"/rules.jar";
            final File tmpDir = getDir("dex", 0);

            String RulePackage = "in.arink.rule.eo_en";
            String classT1x = "eo_en_t1x";
String classT2x = "eo_en_t2x";
 String classT3x = "eo_en_t3x";
String classAT2x = "eo_en_antaux_t2x";
            final DexClassLoader classloader = new DexClassLoader(libPath,
tmpDir.getAbsolutePath(), null, this.getClass().getClassLoader());
         final Class<?> Eo_En_t1x =
classloader.loadClass(RulePackage+"."+classT1x);
 final Class<?> Eo_En_t2x = classloader.loadClass(RulePackage+"."+classT2x);
final Class<?> Eo_En_t3x = classloader.loadClass(RulePackage+"."+classT3x);
 final Class<?> Eo_En_At2x =
classloader.loadClass(RulePackage+"."+classAT2x);


This is because the loaded transfer files will get invoked methods like:
// REGULO: DE DET TEMPO (de/ekde tiu januaro -> from this January -- ŝanĝo
de prepozicio
 public void rule2__de_ekde__c_det__tempo(Writer out, TransferWord word1,
String blank1, TransferWord word2, String blank2, TransferWord word3)
throws IOException

Here, for example TransferWord should be the TransferWord class of the
containing app, not another version of the TransferWord class included in
the language pair which the containing app doesent know about (is this why
you have a renamed 'org' to 'or' in your dex/jar file?).

but... good work!
Jacob


2012/4/11 Arink Verma <arinkve...@gmail.com>

> Solved: External loading of rule class using dex class loader
>
>
> http://cloud.github.com/downloads/arinkverma/Apertiurm-Androind-app-devlopment/ApertiumCode22.zip
>
> This zip contains
>
> /ApertiumAndroid :
>        This is src of android Apertium application
>        Included with data of eo-en language pair which will be installed at
> /sdcard/apertium/eo-en
>
> ./Data-eo-en.zip :
>        Include bin datafile and rules.jar having .dex file for eo-en
> language pair
>        Incase installation fails, this has be extracted at
> /sdcard/apertium/
>
> /ApertiumEo_En :
>        Source code for .dex class files in rules.jar
> -
> Arink Verma
> Computer Science and Engineering
> Indian Institute of Technology
>
>
> ------------------------------------------------------------------------------
> Better than sec? Nothing is better than sec when it comes to
> monitoring Big Data applications. Try Boundary one-second
> resolution app monitoring today. Free.
> http://p.sf.net/sfu/Boundary-dev2dev
> _______________________________________________
> Apertium-stuff mailing list
> Apertium-stuff@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/apertium-stuff
>



-- 
Jacob Nordfalk <https://plus.google.com/114820443085046080944>
http://javabog.dk
Android-udvikler og underviser på
IHK<http://cv.ihk.dk/diplomuddannelser/itd/vf/MAU>og
Lund&Bendsen <https://www.lundogbendsen.dk/undervisning/beskrivelse/LB1809/>
------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Apertium-stuff mailing list
Apertium-stuff@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/apertium-stuff

Reply via email to