問題タブ [dexclassloader]

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 に答える
252 参照

android - Android インストルメンテーション テスト ケース

他の apk からアクティビティをテストしたいと思います。アクティビティとインストルメンテーションを取得する必要があるため、このテストは ActivityInstrumentationTestCase2 ( http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html ) を拡張します。

私は次のように DexClassLoader を使用しようとしています:

しかし、結果として例外が発生します:optimizedDirectory not readable/writable: /data/data/valentin.myapplication2

それを行うための解決策はありますか?

これを後で使用するため、アクティビティが必要です。activity.getWindow().getDecorView()

ご参考までに:

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

android - アンドロイド DexClassLoader. というメソッドを取得できません

  • dx ツールを使用して、DexClassLoader を使用して、Java jar から DEX に変換された jar ファイルをロードしています。
  • jar ファイルは /storage/sdcard0/Download/br_applications/calculator.dx.jar にあります。
  • 私は権限を持っています:
  • 私のコードは(+/-)です:

    /li>
  • .apk ファイルで試しました。そして結果は最悪です。クラスをロードできません...
  • .aar ファイルを試してみました。そして結果は悪かった。
  • ¿誰か私にコードを教えてもらえますか?
  • 私は Android Studio を使用しており、Java Jar であるモジュールを備えた偽の apk アプリケーションを使用して jar ファイルを作成しています。dx ツールを使用して dx.jar ファイルを作成します。 dx --dex --output calculator.dx.jar calculator.jar ありがとうございます。
0 投票する
2 に答える
2899 参照

java - アンドロイド | DexClassLoader、ClassNotFound 例外

だから私は自分のアプリケーションから書いたクラスを読み込もうとしていますが、 ClassNotFound 例外を受け取っています。

クラス:

次に、次のコマンドを使用して jar ファイルを作成します。

次のステップは、jar ファイルの classes.dex を作成し、それを jar に追加することです。

これまでのところ、すべてがうまく機能し、エラーはありません。

このステップの最後に、jar ファイルは次のようになります。

私のマニフェストファイルには次の行が含まれています:

今私のアプリケーション内で私はこれをやっています:

ノート:

  1. myclass.jar ファイルを

Environment.getExternalStorageDirectory()

ディレクトリとアプリケーションがファイルを正しく読み取っていることを確認しました。

  1. マニフェスト ファイルに必要なアクセス許可を設定しました (外部ストレージへの読み取りと書き込み)

私にエラーを与える行は次のとおりです。

エラー:

これは抑制された例外です:

私は何を間違っていますか?

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

android - DexClassLoader と PathClassLoader の違いは何ですか?

.dex ファイルを含む .jar ファイルをディレクトリ "/sdcard" に置き、DexClassLoader と PathClassLoader をそれぞれ使用して、.jar ファイルにクラスをロードしようとしました。どちらもクラスを正常にロードできます。それらの違いは何ですか?これが私のコードです:

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

android - ネイティブ メソッド DexFile.defineClassNative の Android IllegalAccessError

私のプロジェクトでこの例外が発生しました:

私のターゲット API は 23 です。

そして、私のビルドツールは classpath 'com.android.tools.build:gradle:1.5.0'

これを引き起こす aar は、dagger、rxjava、および otto を使用しています。したがって、登録機能はotto用です。

どうすれば解決できますか

私をさらに混乱させたのは、このアプリを6.0デバイスで実行しましたが、dalvik.systemパッケージで例外が発生したことです

さらに、apk の dex ファイルを確認します。前に追加された 2 つの aar が同じ dex ファイル、つまりプロジェクトの 2 番目の dex ファイルにあることを示しています (Google の mulltidex ツールを使用して、アプリケーションを multidex に分割します)。

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

java - Android クラス解決の見知らぬもの

Android でかなりの数の動作を観察しています (私は multidex の問題に取り組んでいるため、4.4.4 でエミュレーターを使用しています)。

Androidでは、クラス ローダーによってロードされるときにクラスが解決されることは想定されていません。しかし、クラスを作成すると:

アプリをデバッグし、ウォッチを追加します。

次に、読み込みMが読み込まFooれ、Foo2!

したがって、クラス解決されます。

不思議なことに、それはほぼ 2 番目の質問ですが、 を追加するM extends Applicationと、Mインスタンス化してもまったく解決されません。が呼び出されたときにのみ JVM にロードされます ( は、FooFoo2場合にロードされます) 。m(X)FooX"0"Foo2X="1"

ここにいる誰かが、これらの根底にある質問について合理的な説明を持っていますか?

  • なぜ解決されるのかM、クラスは解決されるべきではありません。インスタンス化してもMロードしないでくださいFooor at least Foo2.
  • Applicationクラス拡張の動作が異なるのはなぜですか?
  • 別の方法で動作する他の A​​ndroid クラスはありますか?
0 投票する
0 に答える
856 参照

java - DexClassLoader を使用して、動的にロードされた apk からネイティブ ライブラリをロードする

動的に使用して APK から dex ファイルをロードしています。APKDexClassLoaderには、次のパスにもパッケージ化されたネイティブ ライブラリが含まれています。

は、ロードするネイティブ ライブラリを検索するためのDexClassLoaderfilePath を受け入れます。

librarySearchPath文字列: File.pathSeparator で区切られた、ネイティブ ライブラリを含むディレクトリのリスト。nullの可能性があります

しかし、この検索パスはファイルシステム パスしか受け付けないようです。

APK 内でネイティブ ライブラリの検索パスを直接提供する方法はありますか? または、ネイティブ ライブラリを手動で特定の場所に抽出し、抽出したパスを提供する必要がありますか?