次のコードを使用して、特定のパッケージに含まれるすべてのクラスをインスタンス化しています。Android StudioとGradleの2.0バージョンのDexFile
DexFile df = new DexFile(getPackageCodePath());
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements();) {
String className = iter.nextElement();
if (className.contains(packageName) && !className.contains("$")) {
myClasses.add(Class.forName(className).newInstance());
}
}
残念ながら、もう正しく動作しません。 Android Studio 2およびGradle 2.0.0以降、DexFileエントリにはアプリケーション内のすべてのクラスは含まれず、com.android.tools
パッケージに属するクラスのみが含まれます。
これは既知の問題ですか?
私のアプリは理想的にこれを頼りにしており、デバッグは現在自分のアプリケーションを完全に破壊することを意味します。 InstantRunを無効にする方法はありませんか? –
Androidスタジオでそれを無効にする方法があることが判明しました。それは、アプリがそれをサポートできないように自分自身を設定するgradleに書き込めないのは残念です。http://stackoverflow.com/questions/35168753/instant- run-in-android-studio-2-0-how-to-turn-off –