java.lang.NoClassDefFoundError: at com.google.android.gms.c.c.<clinit> (未知来源)尝试使用谷歌播放服务启动虚幻游戏时



我是安卓游戏开发人员的新手,但经过几个月的工作,我在ue4中完成了游戏制作。然而,当上传到阿尔法轨道上的谷歌播放,然后试图启动应用程序时,它崩溃了。

错误本身可能与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)

build.gadle in Intermediate\Android\APK\gradle

// 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
}

build.gradle in Intermediate\Android\APK\gradle\permission_library

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'
}

build.gradle in Intermediate\Android\APK\gradle\downloader_brary

apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
minSdkVersion 4
targetSdkVersion 15
versionCode 2
versionName "1.1"
}
}

buildAdditions.gradle in Intermediate\Android\APK\gradle\app

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导入文件。在添加了所有缺失的依赖项并更新了其他依赖项(因为许多依赖项已经过时)后,问题得到了解决。

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

最新更新