android 代码混淆后bitmap.getwidth报空,Webveiw 的 WebViewContentsClientAdapter 获取bitmap 宽高 时 bitmap 空指针...
时间: 2024-05-10 11:19:09 浏览: 100
这个问题可能是由于代码混淆导致的。在代码混淆过程中,可能会将一些类或方法的名称随机更改,这可能导致一些原本可用的代码无法正常工作。
针对这个问题,你可以尝试将混淆规则中与 Bitmap 相关的类或方法排除在外,避免被混淆掉。具体来说,可以在 proguard-rules.pro 文件中添加如下规则:
```
-keepclassmembers class * extends android.graphics.Bitmap {
public <init>(android.graphics.Bitmap);
public void recycle();
public int getWidth();
public int getHeight();
public boolean isRecycled();
}
```
这个规则将会保留所有继承自 Bitmap 的类的构造函数、recycle() 方法以及与宽度、高度和是否已回收相关的方法。这样可以确保这些方法不会被混淆掉,从而避免空指针异常。
另外,你可以尝试在获取 Bitmap 宽高之前检查 Bitmap 是否为空,以避免出现空指针异常。例如:
```
if (bitmap != null && !bitmap.isRecycled()) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
// do something with width and height
} else {
// handle null or recycled bitmap
}
```
这样即使 Bitmap 为空或者已经被回收,也不会出现空指针异常。
阅读全文