500px / 500px-android-blur

Android Blurring View
http://developers.500px.com/2015/03/17/a-blurring-view-for-android.html
MIT License
2.7k stars 325 forks source link

Caused by: java.lang.NoClassDefFoundError: android.support.v8.renderscript.RenderScript #15

Closed qiang closed 5 years ago

qiang commented 8 years ago
  Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class com.fivehundredpx.android.blur.BlurringView
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:623)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:699)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:400)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
                                                                           at android.view.View.inflate(View.java:17504)
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.initView(ProvideCluePager.java:26)
                                                                           at com.fivetv.elementary.view.pager.BasePager.<init>(BasePager.java:31)
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.<init>(ProvideCluePager.java:21)
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.initView(MediaPlayerActivity.java:134)
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.onCreate(MediaPlayerActivity.java:67)
                                                                           at android.app.Activity.performCreate(Activity.java:5249)
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2165)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:141) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1213) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:136) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5065) 
                                                                           at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
                                                                           at dalvik.system.NativeStart.main(Native Method) 
                                                                        Caused by: java.lang.reflect.InvocationTargetException
                                                                           at java.lang.reflect.Constructor.constructNative(Native Method)
                                                                           at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:597)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:699) 
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:400) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                                                                           at android.view.View.inflate(View.java:17504) 
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.initView(ProvideCluePager.java:26) 
                                                                           at com.fivetv.elementary.view.pager.BasePager.<init>(BasePager.java:31) 
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.<init>(ProvideCluePager.java:21) 
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.initView(MediaPlayerActivity.java:134) 
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.onCreate(MediaPlayerActivity.java:67) 
                                                                           at android.app.Activity.performCreate(Activity.java:5249) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2165) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:141) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1213) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:136) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5065) 
                                                                           at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
                                                                           at dalvik.system.NativeStart.main(Native Method) 
                                                                        Caused by: java.lang.NoClassDefFoundError: android.support.v8.renderscript.RenderScript
                                                                           at com.fivehundredpx.android.blur.BlurringView.initializeRenderScript(BlurringView.java:98)
                                                                           at com.fivehundredpx.android.blur.BlurringView.<init>(BlurringView.java:37)
                                                                           at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                           at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:597) 
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:699) 
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:400) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                                                                           at android.view.View.inflate(View.java:17504) 
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.initView(ProvideCluePager.java:26) 
                                                                           at com.fivetv.elementary.view.pager.BasePager.<init>(BasePager.java:31) 
                                                                           at com.fivetv.elementary.view.pager.ProvideCluePager.<init>(ProvideCluePager.java:21) 
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.initView(MediaPlayerActivity.java:134) 
                                                                           at com.fivetv.elementary.activity.MediaPlayerActivity.onCreate(MediaPlayerActivity.java:67) 
                                                                           at android.app.Activity.performCreate(Activity.java:5249) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2165) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:141) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1213) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:136) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5065) 
                                                                           at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
                                                                           at dalvik.system.NativeStart.main(Native Method) 

I have already add the "renderscriptTargetApi 20" "renderscriptSupportModeEnabled true" in my gradle file . but i still got that error ,why?

zbzbhahae commented 8 years ago

add sdk/build-tools/x.x.x/renderscript/lib/renderscript-v8.jar to your project for lower version of android also need librsjni.so libRSSupport.so at sdk/build-tools/x.x.x/renderscript/lib/xxx/armeabi-v7a ...

goodofficedevsenam commented 8 years ago

Simply replace all the renderscript imports from the BlurringView.java class with : import android.renderscript.*;

Reza-Rg commented 8 years ago

If you are using with minifyEnabled true, then you have to add proguard rule as below: -keep class android.support.v8.renderscript.** { *; }

JackyAndroid commented 8 years ago

@niyingxunzong if you project is module, try " renderscriptTargetApi 21 renderscriptSupportModeEnabled true" in your app gradle

breadadams commented 7 years ago

Is there an official fix for this?

@JackyAndroid's solution gets rid of the errors for me!

csbubbles commented 7 years ago

I don't have minified enabled and I am still getting the same error. Any help? It appears the bug has been open for a year already...

peerless2012 commented 7 years ago

@Reza-Rg 感谢,解决了我的问题。发现是在release的时候 minifyEnabled = true导致这个问题

Pranoy1c commented 6 years ago

Adding

renderscriptTargetApi 21 renderscriptSupportModeEnabled true

to the build.gradle's defaultConfig section worked!

AliNajafi1998 commented 5 years ago

@JackyAndroid Thanks :+1:

jushenziao commented 5 years ago

@niyingxunzong if you project is module, try " renderscriptTargetApi 21 renderscriptSupportModeEnabled true" in your app gradle

Thanks! It is good. but ,could you tell me the root cause.

mnewlive commented 4 years ago

If you are using with minifyEnabled true, then you have to add proguard rule as below: -keep class android.support.v8.renderscript.** { *; }

Also if u use AndroidX, u need to use: -keep class androidx.renderscript.** { *; }

HardyInfotech commented 12 months ago

If you use target sdk = 33,

renderscriptTargetApi 33 renderscriptSupportModeEnabled true

use of this proguard -

RenderScript to be safe on "native callback" side

-keep class androidx.renderscript.* { ; } -keep class android.renderscript.* { ; }