android - java.lang.NoClassDefFoundError:尝试通过Google Play服务启动不真实的游戏时位于com.google.android.gms.c.c。<clinit>(未知来源)。

标签 android gradle google-play proguard unreal-engine4

我是android游戏开发人员的新手,但经过几个月的工作,我终于在ue4中完成了游戏的制作。
但是,当将其上传到Google Play的Alpha轨道上,然后尝试启动该应用程序时,它会崩溃。

错误本身可能与gradle或proguard有关(根据我过去两天的信息收集),但是由于虚幻项目中的build.gradle文件在每次重新构建时都会被重置,因此我不能仅仅进行编辑。

我还在一个虚幻的开发者的论坛上阅读了您应该如何使用“additions.gradle”文件向build.gradle添加依赖项,但是没有关于此的更多文档。

我已经在线查询了每个线程都遇到了类似的问题,但是这些都无法解决我的问题。

崩溃日志:

java.lang.NoClassDefFoundError: 



 at com.google.android.gms.c.c.<clinit> (Unknown Source)

  at com.epicgames.ue4.GameActivity.onCreate (GameActivity.java:2785)

  at android.app.Activity.performCreate (Activity.java:7383)

  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1218)

  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3250)

  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3405)

  at android.app.ActivityThread.-wrap12 (Unknown Source)

  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1994)

  at android.os.Handler.dispatchMessage (Handler.java:108)

  at android.os.Looper.loop (Looper.java:166)

  at android.app.ActivityThread.main (ActivityThread.java:7523)

  at java.lang.reflect.Method.invoke (Native Method)

  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)

  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)

在Intermediate \ Android \ APK \ gradle中的build.gadle
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    apply from: 'buildscriptAdditions.gradle', to: buildscript
}

apply from: 'baseBuildAdditions.gradle'

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在Intermediate \ Android \ APK \ gradle \ permission_library中的build.gradle
apply plugin: 'com.android.library'
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        minSdkVersion 13
        targetSdkVersion 23
    }
}
dependencies {
    implementation 'com.android.support:support-v13:25.0.0'
}

在Intermediate \ Android \ APK \ gradle \ downloader_library中的build.gradle
apply plugin: 'com.android.library'
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        minSdkVersion 4
        targetSdkVersion 15
        versionCode 2
        versionName "1.1"
    }
}

中级\ Android \ APK \ gradle \ app中的buildAdditions.gradle
 apply from: 'aar-imports.gradle'
    apply from: 'projects.gradle'
    android {
        defaultConfig {
            ndk {
                abiFilter "arm64-v8a"
            }
        }
        signingConfigs {
            release {
(Keystore removed)
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
            debug {
                debuggable true
            }
        }
    }
    dependencies {
        implementation('com.android.support:support-v13:27.1.0')
    }
    dependencies {
        implementation('com.google.android.gms:play-services-gcm:11.8.0')
    }

最佳答案

所以我解决了这个问题。我必须进入C:\ Program Files \ Epic Games \ UE_4.21 \ Engine \ Build \ Android \ Java并编辑aar-imports文件。在添加所有丢失的依赖项并更新了其他依赖项之后(许多都是过时的),此问题得以解决。

(还要确保依赖性与您的插件build.gradle文件中的依赖性相同。

关于android - java.lang.NoClassDefFoundError:尝试通过Google Play服务启动不真实的游戏时位于com.google.android.gms.c.c。<clinit>(未知来源)。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54050808/

相关文章:

properties - Gradle 任务检查是否定义了属性

java - IntelliJ和Gradle中的项目编码不一致-应用输出中的国家字符错误

google-play - 在 Google Play 中进行 Beta 测试的分发国家/地区

android - Issue : java. lang.IllegalArgumentException: 真实屏幕元素对应阴影元素ElementDescription

弹出对话框更新数据库后的Android更新Mainactivity ListView

java - onRestoreInstanceState() 究竟是如何工作的?

android - 导出aar文件时如何包含依赖库

Android - 返回登录屏幕时清除内存中的现有对象和变量

android - 使用 getLastKnownLocation() 获取位置无法获得正确的位置

google-play - Google Play 商店的用户是否可以代替所有者上传应用程序?