我有一个使用外部.aar库的react-native项目。该项目在开发中运行良好(并且当我运行 build apk 时),但是当我生成签名的apk 并尝试在生产环境中运行时,该应用程序将找不到它是图书馆。
使用ADB,尝试在实时环境中访问库时显示的日志为:
W/System.err( 5536): java.lang.ClassNotFoundException: Didn't find class "com.pax.dal.impl.DALProxy" on path: DexPathList[[dex file "/data/resource/public/PaxDALImpl.dex"],nativeLibraryDirectories=[/data/resource/public, /data/resource/lib, /vendor/lib, /system/lib]]
W/System.err( 5536): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 5536): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
W/System.err( 5536): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
W/System.err( 5536): at com.e.c.a.a.b.b(Utils.java:113)
W/System.err( 5536): at com.e.c.a.a.a.a(NeptuneDiamondUser.java:38)
W/System.err( 5536): at com.e.e.g.b.b(POSLinkPrinter.java:215)
W/System.err( 5536): at com.e.e.g.b.a(POSLinkPrinter.java:203)
W/System.err( 5536): at com.e.e.g.b$2.run(POSLinkPrinter.java:127)
W/System.err( 5536): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err( 5536): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err( 5536): at java.lang.Thread.run(Thread.java:818)
W/System.err( 5536): Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/pax/dal/proxy/IDALProxy;
W/System.err( 5536): at dalvik.system.DexFile.defineClassNative(Native Method)
W/System.err( 5536): at dalvik.system.DexFile.defineClass(DexFile.java:226)
W/System.err( 5536): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
W/System.err( 5536): at dalvik.system.DexPathList.findClass(DexPathList.java:321)
W/System.err( 5536): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
W/System.err( 5536): ... 10 more
对为什么会发生这种情况有任何想法吗?
答案 0 :(得分:0)
我设法通过在build.gradle中设置minify = false来解决此问题。缩小代码后,必须是在react-native和android之间引用某些库的问题。