gpt4 book ai didi

java - Android Kinvey java.lang.NoClassDefFoundError

转载 作者:行者123 更新时间:2023-11-30 01:27:21 26 4
gpt4 key购买 nike

我有一个使用 kinvey 的 android 应用程序,它对我来说工作得很好,突然我得到了

java.lang.OutOfMemoryError: GC overhead limit exceeded

所以我放

dexOptions {
incremental true
javaMaxHeapSize "4g"
}

在我的 gradle 文件中,但是当我创建新客户端时,我在行中得到了 java.lang.NoClassDefFoundError

mKinveyClient = new Client.Builder(AP_ID,App_Secret, this).build();

我尝试清理项目,清理 gradle 文件,将我的 kinvey sdk 从 1.5 更新到 1.6 有什么建议吗?

这是我的build.gradle文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
dexOptions { //for the error java.lang.OutOfMemoryError: GC overhead limit exceeded
incremental true
javaMaxHeapSize "4g"
}

defaultConfig {
applicationId "com.example.dell.augmentedreality"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled = true
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

repositories {
jcenter()

flatDir {
dirs 'libs'
}

mavenCentral()
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile files('src/main/java/Vuforia.jar')
compile(name:'kinvey-android-2.10.6', ext:'aar') {changing= true}
compile 'com.android.support:multidex:1.0.0'
compile 'com.gordonwong:material-sheet-fab:1.2.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
///////////////////////////for animating the text
///////////////////////
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.easing:library:1.0.1@aar'
compile 'com.daimajia.androidanimations:library:1.1.3@aar'
///////////////google cloud messaging
compile 'com.google.android.gms:play-services:8.4.0'
}

编辑:在我的 jars 文件下面的图片中

enter image description here

最佳答案

我认为问题在于您将 kinvey JAR 文件和 AAR 文件都复制到了 libs/ 中文件夹。您只需要 AAR。

声称丢失的类,com.google.api.client.json.JsonObjectParser , 包含在 google-http-client-1.19-0.jar 中, 所以将该 JAR 文件添加到正确的 libs/模块中的目录,并将这些行包含在你的 build.gradle 中应该正确地找到那个类而不会出错。

repositories {
flatDir {
dirs 'libs'
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'kinvey-android-*', ext:'aar')

// other stuff
}

关于 OutOfMemory 错误,您很可能超出了 Android Dex method limit因为你包含了多少依赖项。最具体地说,你的 gradle 文件的最后一行是 play-services依赖。如果你阅读 that documentation ,您会看到说明

Note: If the number of method references in your app exceeds the 65K limit, your app may fail to compile. You may be able to mitigate this problem when compiling your app by specifying only the specific Google Play services APIs your app uses, instead of all of them.

因为您似乎只需要云消息传递,您可以只包含那个,所以替换这一行。

compile 'com.google.android.gms:play-services:8.4.0'

有了这个

compile 'com.google.android.gms:play-services-gcm:8.4.0'

和任何other Play Services你想包括。

关于java - Android Kinvey java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36267019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com