我有一个使用kinvey的android应用程序,它突然我很好地工作了
java.lang.OutOfMemoryError:超出GC开销限制
所以我把
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文件下面的图片中
答案 0 :(得分:1)
我认为问题在于您将kinvey JAR文件和AAR文件都复制到$credential = Get-Credential
$body = @{action="Upload";param2="Data";param3="Data";} | ConvertTo-Json
Invoke-RestMethod -uri "http://localhost:8080/artifactory/api/build" `
-ContentType "application/json" -method POST -body $body -Credential
文件夹中。你只需要AAR。
声称缺少的类libs/
包含在com.google.api.client.json.JsonObjectParser
中,因此将该JAR文件添加到模块中的正确google-http-client-1.19-0.jar
目录并将这些行包含在您的内容中libs/
应该正确地找到该类而不会出错。
build.gradle
关于OutOfMemory错误,您很可能超过Android Dex method limit,因为您包含了多少依赖项。最具体地说,是repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'kinvey-android-*', ext:'aar')
// other stuff
}
依赖项的gradle文件的最后一行。如果您阅读that documentation,则会看到说明
注意:如果您应用中的方法引用次数超过65K限制,您的应用可能无法编译。通过仅指定应用使用的特定Google Play服务API而非全部API,您可以在编译应用时缓解此问题。
由于您似乎只想要云消息传递,因此您可以只包含该消息,因此请替换此行。
play-services
有了这个
compile 'com.google.android.gms:play-services:8.4.0'
您要包含的任何other Play Services。
答案 1 :(得分:0)
我得到了java.lang.NoClassDefFoundError
你包含了错误的Dependent jar。使用maven或gradle添加相应的依赖版本的jar。