Android Jasper Reportingの回答を見つけようとしたところ、他に2つの質問があることがわかりました。これらの質問は、回答ではなく質問として尋ねられました;):
私の質問は今です:「デバイス上で直接使用するコンパイラはありますか」そして「デバイスをroot化せずにそのようなものを実行する方法。誰かが私にヒントを与えることができれば私は本当に感謝します...
私はこのアプローチを少し楽しみにして、root化されていないAndroidデバイスでAPKを直接作成できるアプリを見つけました:
- TerminalIDE- https://play.google.com/store/apps/details?id =com.spartacusrex.spartacuside&hl=de
- JavaIDEdroid- http: //code.google.com/p/java-ide-droid/
- AIDE- https://play.google.com/store/apps/details?id= com.aide.ui&hl=en
eclipseのコンパイラと移植されたdexコンバータを使用しているようです。今、私は同じことをする方法を理解しようとしています。
確かに:ソースコードを入手して調べてください。しかし、サーバーへの接続を取得してそれを解決しようとすると、不思議な問題が発生しますが、私はここでこの質問をするようにとの嘆願に従います。他の人を助けることと、自分自身の答えを得ることの両方を望んでいます;)
インディゴのプラグインディレクトリからorg.eclipse.jdt.core_3.7.3.v20120119-1537.jarを取得し、次のコードを試しました。
org.eclipse.jdt.internal.compiler.batch.Main ecjMain = new org.eclipse.jdt.internal.compiler.batch.Main(new PrintWriter(System.out), new PrintWriter(System.err), false/*noSystemExit*/, null, progress);
System.err.println("compiling...");
ecjMain.compile(new String[] {"-classpath", "/system/framework", storage.getAbsolutePath()+"/Test.java"});
ecjMain.compile(new String[] {storage.getAbsolutePath()+"/Test.java"});
System.err.println("compile succeeded!!!");
java.lang.Objectが見つからないという例外がスローされることもあれば、100%の使用率でプロセッサを加熱しているときに何も実行せずにスタックすることもありました... ...
現時点では、何が起こっているのか、そしてその理由を理解できませんでした。そして、私がこの部分を行うために他の仕事をしているので、少し待たなければなりません。