0

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

 No pending exception expected: java.lang.IllegalAccessError: com.mogujie.mgjpfbasesdk.fragment.PFBaseFragment
06-28 20:36:33.834 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, java.lang.Object) (DexFile.java:-2)
06-28 20:36:33.834 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class dalvik.system.DexFile.defineClass(java.lang.String, java.lang.ClassLoader, java.lang.Object, java.util.List) (DexFile.java:226)
06-28 20:36:33.834 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class dalvik.system.DexFile.loadClassBinaryName(java.lang.String, java.lang.ClassLoader, java.util.List) (DexFile.java:219)
06-28 20:36:33.834 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class dalvik.system.DexPathList.findClass(java.lang.String, java.util.List) (DexPathList.java:338)
06-28 20:36:33.834 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:54)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class java.lang.Class.classForName!(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:324)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Class java.lang.Class.forName(java.lang.String) (Class.java:285)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.String com.mogujie.commanager.MGJComManager.onIntentInterceptedInternal(java.lang.String, android.content.Intent) (MGJComManager.java:114)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.String com.mogujie.commanager.MGJComManager$MGJHmInterceptor.activity(java.lang.String, android.content.Intent) (MGJComManager.java:140)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void com.mogujie.commanager.internal.hack.MGJHDelegate.handleActivity(android.os.Message) (MGJHDelegate.java:316)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at boolean com.mogujie.commanager.internal.hack.MGJHDelegate.handleMessage(android.os.Message) (MGJHDelegate.java:148)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void android.os.Looper.loop() (Looper.java:148)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:5417)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:726)
06-28 20:36:33.835 13192-13192/com.mogujie.uni A/art: art/runtime/thread.cc:1321]   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:616)

私のターゲット 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 に分割します)。

4

0 に答える 0