java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v8/renderscript/RenderScript;

1.描述:项目中使用高斯模糊的话有可能会使用到etsyblur,这次就看看etsyblur遇到的一个错误:

项目中不兼容的现象是频频出现,下面看看依赖:

 compile 'com.ms-square:etsyblur:0.2.1'
//高斯模糊-毛玻璃
    implementation ('com.ms-square:etsyblur:0.2.1'){
        transitive = true;
    }

2.使用:(下面的view表示设置模糊背景的布局的最外层父控件的id)

private BlurringView blurringView;	
blurringView = (BlurringView) layout.findViewById(R.id.blurring_view);
		blurringView.blurredView(view);//模糊背景

布局: 

 <com.ms_square.etsyblur.BlurringView
        android:id="@id/blurring_view"
        android:layout_width="match_parent"
        app:radius="17"
        app:overlayColor="#66eeeeee"
        android:layout_height="match_parent"
        />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rel"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.ms_square.etsyblur.BlurringView
        android:id="@id/blurring_view"
        android:layout_width="match_parent"
        app:radius="17"
        app:overlayColor="#66eeeeee"
        android:layout_height="match_parent"
        />
    <LinearLayout
        android:id="@+id/lin"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentBottom="true"
        android:paddingLeft="30dp"
        android:paddingRight="30dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_sbs"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:gravity="center_horizontal"
            android:layout_marginTop="50dp"
            android:drawablePadding="10dp"
            android:drawableTop="@drawable/tabbar_compose_idea"
            android:text="发布身边事"
            android:textColor="@color/black"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/tv_search"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            android:clickable="true"
            android:drawablePadding="10dp"
            android:drawableTop="@drawable/tabbar_compose_more"
            android:gravity="center_horizontal"
            android:text="搜索"
            android:textColor="@color/black"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/tv_course"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_marginTop="50dp"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:drawablePadding="10dp"
            android:drawableTop="@drawable/tabbar_compose_photo"
            android:gravity="center_horizontal"
            android:text="我要开课"
            android:textColor="@color/black"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/tv_task"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            android:layout_weight="1"
            android:clickable="true"
            android:drawablePadding="10dp"
            android:drawableTop="@drawable/tabbar_compose_review"
            android:gravity="center_horizontal"
            android:text="发布任务"
            android:textColor="@color/black"
            android:textSize="15sp" />
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/rel_close"
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true">

        <ImageView
            android:id="@+id/iv_close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:padding="15dp"
            android:src="@drawable/tabbar_compose_background_icon_close" />
    </RelativeLayout>


</RelativeLayout>

解决方法:

dependencies {
    compile 'com.ms-square:etsyblur:0.2.1'
}

android {
    defaultConfig {
        renderscriptTargetApi 25
        renderscriptSupportModeEnabled true
    }
}

ScriptIntrinsicBlur 是在API 17加入的,因此低版本的手机是用不了,为了能兼容低版本的手机,我们还得探索其他方案。

RenderScript 兼容包:
所幸的是,Google 为了兼容低版本也可以用RenderScript,加了一个兼容包,android.support.v8.renderscript ,使用support.v8.renderscript就能兼容到Android 2.3版本(API 9),现在市面上估计没有比2.3版本还低的手机了(4.x 的手机都不多了)。使用兼容包和使用原生的RenderScript完全一样,代码还是上面的代码。只是需要在app 的build.gradle添加如下的代码

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19

        // 使用support.v8.renderscript
        renderscriptTargetApi 18
        renderscriptSupportModeEnabled true

    }
}

也就是添加:

  // 使用support.v8.renderscript
        renderscriptTargetApi 18
        renderscriptSupportModeEnabled true

可参考:https://www.jianshu.com/p/1c85f38556c7

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值