android疑难杂症

版权声明:本文为博主原创文章,如需转载请注明出处 https://blog.csdn.net/u013640004/article/details/79425342
  • Error:com.android.builder.dexing.DexArchiveBuilderException:
    Failed to process ****jar
    可能是这个jar支持了JAVA8而你的项目不支持。
    解决方法:
在app-build.gradle-android{}标签内增加
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
  • android.view.InflateException: Binary XML file line #26: Failed to resolve attribute at index 1: TypedValue
    布局中存在某些,当前主题不支持的属性。例如?attr/actionBarSize
    解决方法:
修改主题为theme.AppCompat.Light.DarkActionBar,包含AppCompat应该就行
或者去掉?attr/actionBarSize
  • getResources() android.content.res.Resources$NotFoundException: Resource ID #0x7f050066 type #0x4 is not valid
    at android.content.res.Resources.getDimension(Resources.java:652)
    getDimension的时候报的错,原因是dimen里面引用了不带单位的数值(单位是指dp,sp,px)。
    解决方法:
1、给dimen带上单位
2、使用item标签存储数值,例如
<item name="text_line_spacing" type="dimen" format="float">1.2</item>
然后代码中获取
TypedValue outValue = new TypedValue();
context.getResources().getValue(R.dimen.xxxx, outValue, true);
float bottom = outValue.getFloat();
  • check logs for details相关错误,例如,Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
搜索了一下,发现网上大多说关掉AAPT2,心很累,我们不能什么出问题就把什么关掉,我们要做的是找出问题所在。
因为很多时候报这个错误都只是资源命名或者资源丢失的问题而已,难道这样就要把这个功能关掉?
正确做法:如下图,点击AndroidStudio右下角的Gradle console,然后往上翻查看报错日志,这里很明显是某个资源文件丢失了。
我这里的具体问题是,我在style.xml里引用了这个资源文件,后来我在电脑资源管理器里直接将这个文件删除了,然后就报这个错误了。
我的解决方法是:clean project,然后就会在message里面报style.xml里的错误了,然后我把里面的引用了这个资源的代码去掉即可。

这里写图片描述

  • Canvas: trying to use a recycled bitmap
    很明显,触发这个错误的都是因为bitmap.recycle();,有的人干脆说,去掉这句代码就好了,但我们之所以使用,肯定就是不能去掉的。有以下几种情况和解决方案。
 1、使用了图片旋转,图片裁剪等的方法。
 Matrix matrix = new Matrix();
 matrix.postRotate(rotate);
 Bitmap bitmapTarget = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
 bitmap.recycle();
 return bitmapTarget;
这样是有问题的,需要在bitmap.recycle()的时候加一个判断。
if(!bitmap.equals(bitmapTarget))
{
 bitmap.recycle();	
}
因为当原图和需要处理的效果已经同样了的时候,createBitmap应该是不作处理的,所以返回的还是原来的bitmap,所以这时候recycle,就是recycle掉原来的图片,从而导致崩溃

2、对ImageView里面的图片进行了recycle,导致onDraw的时候崩溃。
处理方法:加try catch.

3、其他的,加判断吧,然后加重新加载的接口回调,如果recycle了,就重新加载。
  • 三星note8无法打开USB调试模式。
    首先,在关于手机-软件信息-版本号处点击5下打开开发者模式。
    然后,拨号界面输入*#0808#,在 USBSettings界面选择 MTP+ADB,确定重启即可。

<item> inner element must either be a resource reference or empty

升级Android Studio 3.2之后item标签报的错。解决方法:

 <item name="xx_id" type="id">true</item>
|
|
V
 <item name="xx_id" type="id"/>

待续。。。。

猜你喜欢

转载自blog.csdn.net/u013640004/article/details/79425342