我是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/