問題タブ [dalvik]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1205 参照

java - eclipse は、大きな Android ファイルで「ワークスペースの構築」に失敗します...?

私はEclipseに深刻な問題を抱えています。やや大きなクラスをコンパイルする必要があります。「大きい」とは、クラスには約5000行のコードがあることを意味します...

問題は、このプロジェクトを保存するときに、Eclipse が「ワークスペースを構築する」のに数秒 (30-40) かかることです。正確には、「50%」と 30 ~ 40 秒間言い続けます。次に、次のエラーで中断します。

[コンソール]:

[2010-07-09 15:28:39 - Dex Loader] Unable to execute dex: null

[2010-07-09 15:28:39 - myProject] Conversion to Dalvik format failed: Unable to execute dex: null

[問題ウィンドウ]:

Conversion to Dalvik format failed: Unable to execute dex: null

このエラーは再現可能で、数千の LOC をコメントアウトするまでポップアップし続けるため、ファイルにはまだこの 5k LOC がありますが、そのうちの ~2000 はコメントです。それは動作します...

5000 LOC が本当に良いプログラミング スタイルではないことはわかっていますが、今のところこの方法で行う必要があります... (これだけのレコードを sqlite データベースに書き込む必要があります。コマンドは、データベースにプッシュする必要があるすべてのデータレコードに対して単一の rawQuery() を実行する必要があります.... - ファイルリーダーを作成してファイルからこのデータを読み取るまで (検証などが必要です)、私は「この解決策に行き詰まっています...)

eclipse と android SDK でこのサイズのファイルを受け入れるにはどうすればよいですか?

(システム: ubuntu 10.04 x86、Eclipse 3.6)

0 投票する
19 に答える
36446 参照

android - javax/net/SocketFactory.class でエラー 1 が発生し、Dalvik 形式への変換に失敗しました

コンソールでこのような出力を取得してプロジェクトをビルドしようとすると、次の問題が発生します。

パッケージjavaxを使用するプロジェクトを探していましたが、見つかりませんでした。すべてクリーンアップしても役に立ちません。私は何を間違っていますか?

アップデート

申し訳ありませんが、それに対する適切な修正が見つかりませんでしたSocketFactory。プロジェクトでクラスをまったく使用しないという事実を強調したいと思います! ソースコードはこの問題の前に変更されていませんでした。そのため、Eclipseまたはadtなどの問題だと思いますが、このプロジェクトをビルドするためにant(sdkによって生成された)を使用しても問題はありません!!!

Eclipse、Android SDK、Eclipse ワークスペースを削除してこの問題を解決し、それらを再インストールするだけで、今のところすべて正常に動作します。

これが誰かを助けることを願っています。

0 投票する
1 に答える
1725 参照

android - ScalaをコアAndroidプラットフォームに統合する方法は?

Scala(または他のJava以外のJVM言語)をAndroidプラットフォームに統合することに興味があります。私は、早い段階で行ったScalaを使用したAndroidアプリケーションの作成について言及していませんが、実際には、Androidプラットフォームのソースツリーをビルドするビルドプロセスにフックしています。これは、makefileなどにフックすることの問題になると思います。誰かがこれについて洞察を持っていますか?

私がこれまでに持っているもの: 「[GoogleAndroidをダウンロードしてビルドする] [1]」に基づいて、未使用の形式でビルドされたgit://android.git.kernel.org/platform/manifest.gitのプラットフォームソースツリー

  • build / core / combo / scalac.mk#config.mkに含まれるscalaコンパイラ関連の変数を設定します
  • build / core/definitions.mkにall-subdir-scala-filesとall-scala-files-underの定義を追加しました
  • パッケージに含まれるようにscalaファイルをビルドするためにdefinitions.mkに定義を追加しました

残っているもの:

  • scala-library.jarを含める
  • -bootclasspathへの変更が何も壊れていないことを確認します
  • ScalaクラスがJavaクラスに依存し、その逆の場合の処理​​方法を理解する
  • コードの主要なクリーンアップ
  • テスト!
  • 私が行った変更で(ここに投稿する以外に)何をすべきかを理解する

もうすぐそこにいるようです!!!

過去からのいくつかのメモ

最新:Javaソースファイルがコンパイルされている場所を見つけました!definitions.mkで、「definetransform-java-to-classes.jar」を参照してください。最新のアイデアは、transform-scala-to-classes定義を記述し、それらのクラスをパッケージ化される直接に格納することです。このステップの直前に、transform-java-to-classes.jarでtransform-scala-to-classを呼び出します。eclipseとcygwinのサポートは、回避策でコードが乱雑になり、失敗の可能性が高くなるため、今のところ削除されます。

ビルドプロセスは、build / core /main.mkを実行するルートMakefileによって開始されます。build/core/ main.mkには、HOST_JAVAC、TARGET_JAVAC、およびを設定するbuild / core / combo/javac.mkを含むbuild/core/config.mkが含まれます。 COMMON_JAVAC。COMMON_JAVACは、「共通の引数を持つJavaコンパイラコマンド」です。特別な環境(openjdkまたはeclipse)でない限り、他の2つの変数はデフォルトでこれらの値を取得します。COMMON_JAVACは、このファイルの外部では使用されません。他の2つは、build / core/definitions.mkでのみ使用されます。

build / core / java_library.mk(config.mkに含まれています)は、jarのビルドにのみ関係しているようです。これは私たちが気にする範囲外です。jarとの対話は、scalaファイルの構築にすでに成功していることを前提とするクラスファイルを前提としています。

javaのバージョンに関してmain.mkにチェックがあります。これらを無視し、scalaのバージョンに互換性があると想定します。現在(combo / scalac.mkで)javac.mkで使用されているのと同じ--targetargを使用しています。これはおそらく変数に格納する必要があります。

main.mkには、いくつかの便利な関数を定義するbuild / core/definitions.mkも含まれています。ここで気になるのは、all-java-files-underとall-subdir-java-filesです。後者は、Javaファイルを見つけるためにAndroid.mkファイルで使用されます。前者は後者の実装に使用されます。それらに相当するScalaを書きます。

ビルドプロセスがどのように機能するかを理解するために、私は現在、-nなどを使用してmakeを実行しています。このアイデアは、stackoverflowの記事「[makefileをデバッグするためのツール][2]」から得ました。リメイクによるデバッグも検討中です。

build / core / {config.mk、definitions.mk}は、どのmakeファイル/コマンドが何をするために使用されるかについての光を与えてくれます。

プロジェクトごとのサポートをハッキングする可能性のある方法として、プロジェクトのAndroid.mkファイルに追加のコードが追加される可能性があります。platform / build / core / build-system.htmlから、「Android.mkは、特定のモジュールのビルドを制御するmakefileフラグメントの標準名です。最上位ディレクトリにのみ「Makefile」という名前のファイルが必要です。」と読みます。「scala-build」のような新しいターゲットを作成し、最終的なmakeの前にそれを実行(make PackageName scala-build)することができます。おそらく、変数の割り当てでこっそり隠して、ターゲットを明示的に呼び出す必要性を軽減することもできます。

もう1つの方法(はるかにハック的)は、javacに使用されているコマンドをハイジャックすることです。これはbuild/core / combo/javac.mkで設定されます。プロジェクトのAndroid.mkには、*。javaファイルと一緒に*.scalaファイルをLOCAL_SRC_FILESに含める必要があります。

0 投票する
2 に答える
179 参照

android - Androidのクラスインスタンスサイズ

現在、Android用の画像処理コードを実装しています。私はメモリ制限を認識しており、その制限内でコーディングできてうれしいです。ただし、(ヒープ上で)インスタンス化する可能性のある特定のクラスの各インスタンスに使用されているバイト数を把握できるドキュメントが見つかりません。

私は経験豊富なC++プログラマーなので、C ++コードの構造体/クラスのサイズ設定の問題(プロセッサのデータパス幅、プラットフォームの配置の問題などを考慮に入れる)を解決するのに比較的有能です。Javaは一般的に抽象化のレベルが高いため、一般的なJavaVMの特定のメモリ使用量を保証できない可能性があることを私は知っています。ただし、Androidが別のVMで実行されており、開発者がメモリに強い制約を受けていることを考えると、特定のオブジェクトインスタンスの大きさを計算するための比較的決定論的な一連のルールが存在する可能性があると想定しています。メンバー。

誰もがこれらのルールを知っていますか?

ありがとう!

アレックス

0 投票する
2 に答える
4012 参照

android - AndroidのDalvikVMとJavaVMの違いは?

一般に、AndroidはDalvikVmで各アプリを個別のプロセスとして実行します。これはDocから入手しました。しかし、Android用のDalvikVMに行く主な理由が何であるか理解できません。JavaVMよりも優れている点は何ですか。あなたの知識を共有してください。助けになる。

前もって感謝します。

0 投票する
7 に答える
24828 参照

android - Linuxでローカルに実行するためにDalvikをコンパイルするにはどうすればよいですか?

LinuxでDalvik仮想マシンだけをコンパイルして実行するために必要な最小限の手順(ソースコードの取得を含む)は何ですか?

0 投票する
2 に答える
622 参照

android - jar を参照するか、Dalvik でコンパイルしますか?

Android プロジェクトから参照する必要がある jar があります。jar の src も持っているので、プロジェクト自体に含めることができます。jar を参照するのと、Dalvik を使用してプロジェクトでコンパイルするのとでは、生成される最終的な Dalvik パッケージのサイズに違いがあるかどうか疑問に思っていました。

0 投票する
0 に答える
2267 参照

java - Android フォンで送信 SMS をブロックすることはできますか?

Android で送信 SMS メッセージをリッスンする方法はありますか? もしそうなら、メッセージが送信されないようにすることは可能ですか?

0 投票する
2 に答える
3103 参照

android - Android で Joda-time を実行するのに問題があります。

私は Android を学んでいて、日付/時刻が必要です。同僚から Joda-time を勧められましたが、これはまさに私が進歩するために必要なもののようです。残念ながら、私はそれを機能させるのに問題があります。

私は intellij を使用しています。これは Android 2.2 です。

私が取った手順:

  1. Joda-time jar をWeb サイトからダウンロードします。
  2. Intellij > ファイル > プロジェクト構造 > クラスのアタッチ
  3. 建てる

次に、次のエラーが表示されます。

警告: EnclosureMethod 属性が関連付けられていない匿名内部クラスの InnerClasses 属性は無視されます。(このクラスは、壊れたコンパイラによって生成された可能性があります。)

ここからどこへ行けばいいのかわからない。助けていただければ幸いです!

0 投票する
4 に答える
888 参照

java - Java が Android をプログラムする唯一の方法である特定の理由はありますか?

Dalvik と Google の Android OS が初めて登場したとき、それについてよく読みました。私がよく理解していないことの 1 つは、Java が使用される理由です。私がそれを理解する方法は次のとおりです。

私が理解できないのは、Dalvik VM 用の Java 以外のストレートな Dalvik コードやその他のフロント エンドにコンパイルされるものをまだ見ていない理由です。Java を使用せずに Android を操作するストレート コンパイラや方法について何か作業が行われていますか?

明確にするために、Java バイトコードにコンパイルされない言語を探しています。また、動的言語には関心がありません。動的言語に関するいくつかの質問を既に読みました。また、NDK についても認識しています。実際のネイティブ コンパイル言語ではなく、Dalvik でコンパイルされた言語に関する情報を探しています。