[英]Support library and compileSdkVersion version mismatch
我正在构建应用程序,并且正在使用旧的HTC Desire S调试和测试该应用程序。 这部手机运行的是Android 2.3.5版,我的应用程序的最低SDK设置为10。
另外,由于这些出色的规格,我的手机在ImageView中将JPEG作为位图导入JPEG时遇到了麻烦(可能是由于JPEG的大小),并且在处理某些文件时崩溃了。
public void showImage() {
String filePath = contentDirectory + "/" + filesInFolder[image_index];
ImageView imgView = (ImageView) findViewById(R.id.myimage);
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
ImageView imgView = (ImageView) findViewById(R.id.myimage);
imgView.setImageBitmap(bitmap);
}
经过一番搜索后,我发现我应该使用Glide解决问题。
按照Glide GitHub页面上的说明,我将以下内容插入build.gradle中:
dependencies {
compile 'com.github.bumptech.glide:glide:4.0.0-RC1'
compile 'com.android.support:support-v4:25.3.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1'
}
并将图像显示为:
public void showImage() {
String filePath = contentDirectory + "/" + filesInFolder[image_index];
ImageView imgView = (ImageView) findViewById(R.id.myimage);
Glide.with(this).load(filePath).into(imgView);
}
运行我的应用程序时,它崩溃。 因此,我将compile 'com.android.support:support-v4:25.3.1'
更改为compile 'com.android.support:support-v4:10.3.1'
(版本25至10)。
我现在得到了错误
该支持库不应使用与compileSdkVersion(25)不同的版本(10)。
因此,我将compileSdkVersion设置为10:
android {
compileSdkVersion 10
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.XXX.myapplication"
minSdkVersion 10
targetSdkVersion 10
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
}
同步gradle文件后,出现很多错误,所有错误都位于
C:\\ MyApplication的\\程序\\建立\\中间体\\水库\\合并\\调试\\
如有必要,我可以将它们全部张贴(有很多),但是我认为这里的主要问题是我得到了错误:
无法解析符号“ R”
有谁能提供解决方案或为我指明正确的方向?
行的故障转储:
Glide.with(本).load(文件路径).into(imgView);
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication I/dalvikvm: Failed resolving Lcom/bumptech/glide/Glide; interface 59 'Landroid/content/ComponentCallbacks2;'
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication W/dalvikvm: Link of class 'Lcom/bumptech/glide/Glide;' failed
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication I/dalvikvm: Could not find method com.bumptech.glide.Glide.with, referenced from method com.imageviewexample.ImageViewExample.showImage
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication W/dalvikvm: VFY: unable to resolve static method 17289: Lcom/bumptech/glide/Glide;.with (Landroid/app/Activity;)Lcom/bumptech/glide/RequestManager;
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication D/dalvikvm: VFY: replacing opcode 0x71 at 0x0028
01-06 04:05:13.929 21324-21324/com.example.XXX.myapplication D/dalvikvm: VFY: dead code 0x002b-0033 in Lcom/imageviewexample/ImageViewExample;.showImage ()V
01-06 04:05:13.959 21324-21324/com.example.XXX.myapplication D/AndroidRuntime: Shutting down VM
01-06 04:05:13.959 21324-21324/com.example.XXX.myapplication W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
01-06 04:05:13.969 21324-21324/com.example.XXX.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.bumptech.glide.Glide
at com.imageviewexample.ImageViewExample.showImage(ImageViewExample.java:78)
at com.imageviewexample.ImageViewExample.onCreate(ImageViewExample.java:53)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4385)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)
首先使用Glide的原因是位图和ImageView的内存问题。 不幸的是,我和上面的帮助成员无法解决如上所述的有关Glide崩溃的问题。
与其说是第一个问题,不如说是内存问题, bitmap.recycle()
通过在显示新位图时在代码中包含bitmap.recycle()
来解决该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.