Java 不能';“找不到”;librealm jni.so“;

Java 不能';“找不到”;librealm jni.so“;,java,android,gradle,realm,Java,Android,Gradle,Realm,我的应用程序在领域中运行良好。在另一个项目中,我有一个正在运行的GCM(推送通知)应用程序。但我需要的是这两个东西都能在我的一个应用程序中工作,所以在一个应用程序中梳理代码,我开始得到以下异常 我已经找到了一些关于同一问题的帖子,比如,将gradle更新为gradle-2.8,但到目前为止运气不好 非常感谢您为解决此问题提供的任何帮助 E/AndroidRuntime:java.lang.UnsatifiedLink错误: dalvik.system.PathClassLoader[DexPat

我的应用程序在
领域
中运行良好。在另一个项目中,我有一个正在运行的GCM(推送通知)应用程序。但我需要的是这两个东西都能在我的一个应用程序中工作,所以在一个应用程序中梳理代码,我开始得到以下异常

我已经找到了一些关于同一问题的帖子,比如,将gradle更新为
gradle-2.8
,但到目前为止运气不好

非常感谢您为解决此问题提供的任何帮助

E/AndroidRuntime:java.lang.UnsatifiedLink错误: dalvik.system.PathClassLoader[DexPathList[[zip文件] “/data/app/euxxxx-1/base.apk”],nativeLibraryDirectories=[/vendor/lib, /system/lib]]]找不到“librealm jni.so”

请参阅。

请参阅

  • 转到领域网站
  • 点击常见问题解答
  • 搜索“无法加载librealm jni.so”
  • 您将看到更新信息
  • TDLR;

    在领域文档中,您可以找到以下内容:

    无法加载“librealm jni.so” 如果您的应用程序使用其他不支持64位体系结构的本机库,Android将无法在ARM64设备上加载Realm的librealm-jni.so文件。这是因为Android无法同时加载32位和64位本机库。最好的解决方案是让所有库提供相同的受支持ABI集,但如果您使用的是第三方库,有时这可能不可行。请参阅VLC和领域库冲突

    解决此问题的方法是通过将以下代码添加到应用程序的build.gradle中,将Realm的ARM64库从APK文件中排除。有关更多信息,请参阅Android中混合使用32位和64位依赖项

    android {
        //...
        packagingOptions {
            exclude "lib/arm64-v8a/librealm-jni.so"
        }
        //...
    }
    
    此外,Android Gradle Plugin 1.4.0 Beta中存在一个错误,导致其无法正确打包jar文件中包含的.so文件(请参阅Java领域1421版)。要解决此问题,您可以恢复到Android Gradle Plugin 1.3.0或使用Android Gradle Plugin 1.5.0+

    我们了解到许多第三方库、框架和管理应用程序尚未获得64位支持:

    但您可以建议用户安装64位版本。 RenderScript NDK r14可能支持64位。 Unity3d

    注:您好,如果我在我的发行版BuildType上使用proguard,这将再次出现

  • 转到领域网站
  • 点击常见问题解答
  • 搜索“无法加载librealm jni.so”
  • 您将看到更新信息
  • TDLR

    在领域文档中,您可以找到以下内容:

    无法加载“librealm jni.so” 如果您的应用程序使用其他不支持64位体系结构的本机库,Android将无法在ARM64设备上加载Realm的librealm-jni.so文件。这是因为Android无法同时加载32位和64位本机库。最好的解决方案是让所有库都提供相同的一组受支持的ABI,但如果您使用的是第三方库,有时这可能不可行。请参阅VLC和领域库冲突

    解决此问题的方法是通过向应用程序的build.gradle中添加以下代码,将Realm的ARM64库从APK文件中排除。有关更多信息,请参阅Android中混合使用32位和64位依赖项

    android {
        //...
        packagingOptions {
            exclude "lib/arm64-v8a/librealm-jni.so"
        }
        //...
    }
    
    另外,Android Gradle插件1.4.0 betas中存在一个bug,导致它无法正确打包jar文件中包含的.so文件(请参阅Java领域1421版)。要解决这个问题,您可以恢复到Android Gradle插件1.3.0或使用Android Gradle插件1.5.0+

    我们了解到许多第三方库、框架和管理应用程序尚未获得64位支持:

    但您可以建议用户安装64位版本。 RenderScript NDK r14可能支持64位。 Unity3d


    注:您好,如果我在发布版本buildTypes上使用proguard,这会再次出现。

    @IntelliJAmiya首先谢谢,我已经检查了链接,但是您能帮我解决这个问题吗,因为它们是单独工作的,但是为什么要对它们进行梳理会出现这样的问题,我真的不知道如何使用你的链接来解决这个问题provided@SSH您使用的构建工具版本是什么?i、 e.classpath'com.android.tools.build:gradle:1.5.0'这会有帮助吗@SSH@IntelliJAmiya首先,谢谢,我已经检查了链接,但是你能帮我解决这个问题吗,因为它们是分开工作的,但是为什么梳理它们会出现这样的问题,我真的不知道如何使用你的链接来解决这个问题provided@SSH您使用的构建工具版本是什么?i、 e.classpath'com.android.tools.build:gradle:1.5.0'这会有帮助吗@SSH