如果我们将GCM发送者ID放在用于城市飞艇推送通知的airshipconfig.properties文件中,那么在发布后抛出以下错误的应用程序就会崩溃。
错误:
java.lang.IncompatibleClassChangeError:方法' java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)'预计是虚拟类型,但被发现是直接类型(声明' java.lang.reflect.ArtMethod'出现在/system/framework/core-libart.jar)
gradle文件:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven {
url 'https://maven.fabric.io/public'
}
maven { url "https://urbanairship.bintray.com/android" }
maven { url "https://jitpack.io" }
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.0 rc2"
defaultConfig {
applicationId "com.samachar.newskannada"
minSdkVersion 14
targetSdkVersion 22
versionCode 2
versionName "1.0"
}
buildTypes {
debug {
buildConfigField 'String', 'CONTAINER_ID', '"containedid"' //Development
buildConfigField 'boolean', 'GTM_VERBOSE_ENABLE', 'true'
buildConfigField 'String', 'APP_KEY', '"appkey"'
minifyEnabled false
shrinkResources false
}
release {
buildConfigField 'String', 'CONTAINER_ID', '"GTM_id"' //Development
buildConfigField 'boolean', 'GTM_VERBOSE_ENABLE', 'true'
buildConfigField 'String', 'APP_KEY', '"appkey"'
//progard
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.github.bumptech.glide:glide:3.6.0'
// Urban Airship SDK
compile 'com.urbanairship.android:urbanairship-sdk:7.0.+'
// Recommended for in-app messaging
compile 'com.android.support:cardview-v7:23.1.1'
// Recommended for location services
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile project(':Volley')
compile 'com.github.ybq:Android-SpinKit:1.0.2'
compile "com.squareup.picasso:picasso:2.4.0"
compile 'com.github.amlcurran.showcaseview:library:5.4.3'
compile "org.jsoup:jsoup:1.8.1"
}
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
错误是使用File getFilesDir ()
创建的文件,返回文件系统上目录的绝对路径,其中存储了使用openFileOutput(String, int)
创建的文件。
如果将调用应用程序移动到已采用的存储设备,则返回的路径可能会随时间发生变化,因此只应保留相对路径。
在getNoBackupFilesDir
中找到android.support.v4.content.ContextCompat
。似乎问题是项目中包含旧的appcompat-v7。
尝试使用SDK管理器下载latest version of Android Support Library,然后按照Adding libraries的步骤使用资源,并将库添加到您的应用程序项目中。