Android 图像在发布构建后不显示,或者如果我即时 运行 关闭
Android Images are not displayed after release build or if i instant run turn off
我在 运行 时使用 getIdentifier 方法从 drawable-hdpi 获取图像 ID,使用以下代码
mContext.getResources().getIdentifier(mContext.getPackageName() + ":drawable/" + mCur.getString(mCur.getColumnIndex(Constant.COLUMN_IMAGE_DRAWABLE)), null, null)
我也试过以下方法
mContext.getResources().getIdentifier(mCur.getString(mCur.getColumnIndex(Constant.COLUMN_IMAGE_DRAWABLE))+"", "drawable", mContext.getPackageName());
并使用以下代码设置图片资源
imgPosotion.setImageResource(item.getDrawable());
当我从 android studio 打开即时 运行 时,它们都工作但不幸的是 none 当我关闭即时 运行 功能时,它们中的工作 [=37] =]工作室。
我在调试时使用 Proguard,在发布时使用以下代码
release {
debuggable true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
观察到的场景
图像未显示。代码 运行 完美并在 运行 和即时 运行 时显示图像。
我制作发布版本然后反编译它,我观察到图像(.png 扩展名)在 res/drawable-hdpi 文件夹中,但大小被转换为 1*1 维度(67 字节),当我试图打开时,只有一个点可见当我尝试打开 jpg(转换为 0 字节大小)文件时,它们没有打开。
预期情况
图片必须可见
已采取行动解决
使图像尺寸变小
将图像从 .png 转换为 jpg
我坚持这个问题所以请帮助我。感谢,如果有人可以帮助解决问题。
没有人认真对待这个问题,但在做了很多类型的事情之后我得到了解决方案。实际上问题出在 proguard 上,我不知道为什么,但它在将 false 设置为 shrinkResources
后起作用
release {
..
minifyEnabled true
shrinkResources false
}
这是不好的做法,您应该使用此处描述的官方 google 策略 https://developer.android.com/studio/build/shrink-code#keep-resources
发布{
..
minifyEnabled 真
收缩资源 false
}
跟我一起工作
我在 运行 时使用 getIdentifier 方法从 drawable-hdpi 获取图像 ID,使用以下代码
mContext.getResources().getIdentifier(mContext.getPackageName() + ":drawable/" + mCur.getString(mCur.getColumnIndex(Constant.COLUMN_IMAGE_DRAWABLE)), null, null)
我也试过以下方法
mContext.getResources().getIdentifier(mCur.getString(mCur.getColumnIndex(Constant.COLUMN_IMAGE_DRAWABLE))+"", "drawable", mContext.getPackageName());
并使用以下代码设置图片资源
imgPosotion.setImageResource(item.getDrawable());
当我从 android studio 打开即时 运行 时,它们都工作但不幸的是 none 当我关闭即时 运行 功能时,它们中的工作 [=37] =]工作室。 我在调试时使用 Proguard,在发布时使用以下代码
release {
debuggable true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
观察到的场景 图像未显示。代码 运行 完美并在 运行 和即时 运行 时显示图像。 我制作发布版本然后反编译它,我观察到图像(.png 扩展名)在 res/drawable-hdpi 文件夹中,但大小被转换为 1*1 维度(67 字节),当我试图打开时,只有一个点可见当我尝试打开 jpg(转换为 0 字节大小)文件时,它们没有打开。
预期情况 图片必须可见 已采取行动解决 使图像尺寸变小 将图像从 .png 转换为 jpg 我坚持这个问题所以请帮助我。感谢,如果有人可以帮助解决问题。
没有人认真对待这个问题,但在做了很多类型的事情之后我得到了解决方案。实际上问题出在 proguard 上,我不知道为什么,但它在将 false 设置为 shrinkResources
后起作用release {
..
minifyEnabled true
shrinkResources false
}
这是不好的做法,您应该使用此处描述的官方 google 策略 https://developer.android.com/studio/build/shrink-code#keep-resources
发布{ .. minifyEnabled 真 收缩资源 false
}
跟我一起工作