【问题标题】:OneSignal crash on android 4.4安卓 4.4 上的 OneSignal 崩溃
【发布时间】:2019-04-02 09:20:25
【问题描述】:

我在 Unity 中集成了 OneSignal,并将其构建到 Android 平台中。我在 Crashlytics 中收到了一些关于 OneSignal 的崩溃日志。我做了一些研究,发现这个错误是在 os 4.4 中触发的。我的应用程序有两个人触发它,他们使用的是 os 4.4 设备。我看到一些他们说我需要启用multiDex 选项的参考资料。但我已经启用了它。所以我不知道如何解决它。有人知道如何解决吗?谢谢。

以下是我在 Crashlytics 中收到的崩溃日志。

Caused by java.lang.VerifyError: com/onesignal/LocationGMS
       at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1062)
       at com.onesignal.ActivityLifecycleHandler$AppFocusRunnable.run(ActivityLifecycleHandler.java:171)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.os.HandlerThread.run(HandlerThread.java:61)

这是我的毕业典礼

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
    }
}

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:1.0.1'
    compile project(':fabric-init')
    compile project(':fabric')
    compile project(':crashlytics')
    compile project(':crashlytics-wrapper')
    compile project(':answers')
    compile project(':beta')
    compile project(':OneSignalConfig')
    compile project(':SuperAwesome_lib')
    compile project(':unity-android-resources')
    compile files('libs/unity-classes.jar')
    compile(name: 'common', ext: 'aar')
    compile(name: 'GoogleAIDL', ext: 'aar')
    compile(name: 'GooglePlay', ext: 'aar')
    compile(name: 'Helpshift', ext: 'aar')
    compile(name: 'com.android.support.animated-vector-drawable-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.appcompat-v7-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.cardview-v7-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.customtabs-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.design-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.recyclerview-v7-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-compat-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-core-ui-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-core-utils-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-fragment-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-media-compat-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-v4-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.support-vector-drawable-27.1.1', ext: 'aar')
    compile(name: 'com.android.support.transition-27.1.1', ext: 'aar')
    compile(name: 'android.arch.core.runtime-1.1.0', ext: 'aar')
    compile(name: 'android.arch.lifecycle.livedata-core-1.1.0', ext: 'aar')
    compile(name: 'android.arch.lifecycle.runtime-1.1.0', ext: 'aar')
    compile(name: 'android.arch.lifecycle.viewmodel-1.1.0', ext: 'aar')
    compile(name: 'UnityAds', ext: 'aar')
    compile(name: 'com.google.firebase.firebase-iid-12.0.1', ext: 'aar')
    compile(name: 'installreferrer-1.0', ext: 'aar')
    compile(name: 'onesignal-unity', ext: 'aar')
    compile(name: 'com.google.android.gms.play-services-iid-12.0.1', ext: 'aar')
}

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.1'

    defaultConfig {
        targetSdkVersion 26
        applicationId 'com.xxxxx.xxxxx'
        multiDexEnabled true
        versionCode 41
        versionName "1.0.30"
        minSdkVersion 16
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        noCompress '.unity3d', '.ress', '.resource', '.obb'
    }

    dexOptions{
        javaMaxHeapSize "2g"
    }

    buildTypes {
            debug {
                jniDebuggable true
            }
            release {
                // Set minifyEnabled to true if you want to run ProGuard on your project
                // minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
                signingConfig signingConfigs.release
            }
        }
}

【问题讨论】:

    标签: android unity3d gradle onesignal android-multidex


    【解决方案1】:

    设置 multidex 有很多步骤,您可能错过的一个重要步骤是由于您在 AndroidManifest.xml 中的 <application> 标签中看到的错误是 android:name

    <application
        android:name="android.support.multidex.MultiDexApplication" >
    </application>
    

    下面有一份详细指南,我建议您查看一下,以确保您在 Unity 项目中使用 multiDex 正确设置了所有内容 https://appmediation.com/unity-enable-multidex/

    【讨论】:

    • 我按照android开发者网站上的说明进行操作。所以我已经在应用程序标签中添加了应用程序并在gradle中添加了multiDexEnabled true
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    相关资源
    最近更新 更多