2014-03-04 50 views
5

我在x86设备Razor i上运行android.support.v8.renderscript.*致命EXCEPTION。如果我使用android.renderscript.*,问题就消失了。ARM设备也没有问题。这里是个例外:RenderScript支持库在x86设备上崩溃

03-03 18:35:26.009 25011-25011/com.example.app E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MainActivity}: android.support.v8.renderscript.RSRuntimeException: Error loading RS jni library: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 143 cannot locate '__strlen_chk'... 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2115) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2153) 
      at android.app.ActivityThread.access$700(ActivityThread.java:137) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5031) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:511) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.support.v8.renderscript.RSRuntimeException: Error loading RS jni library: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 143 cannot locate '__strlen_chk'... 
      at android.support.v8.renderscript.RenderScript.create(RenderScript.java:945) 
      at android.support.v8.renderscript.RenderScript.create(RenderScript.java:982) 
      at android.support.v8.renderscript.RenderScript.create(RenderScript.java:968) 
      at com.example.app.MainActivity$PlaceholderFragment.createScript(MainActivity.java:92) 
      at com.example.app.MainActivity$PlaceholderFragment.onCreateView(MainActivity.java:81) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 
      at android.app.BackStackRecord.run(BackStackRecord.java:635) 
      at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397) 
      at android.app.Activity.performStart(Activity.java:5067) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2153) 
            at android.app.ActivityThread.access$700(ActivityThread.java:137) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:137) 
            at android.app.ActivityThread.main(ActivityThread.java:5031) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:511) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
            at dalvik.system.NativeStart.main(Native Method) 
+4

x86的问题是我们的工具链中存在一些缺陷,这些缺陷导致它在某些设备上无法加载。我现在正在处理固定的二进制文件,并且应该在第二天有一个新的librsjni.so。 –

+0

另一个线程会很好,我还没有看到任何关于Nexus S/4.2和ColorMatrix的问题,但它是可能的。 –

+1

在19.1.0我仍然得到这个错误,你知道bugfix何时会被释放吗? –

回答

3

我想你也应该包括\构建工具\ 19.0.2本机库\的renderScript \ LIB \包装

+0

我试过19.0.3,不起作用。在发行说明中,19.0.2和19.0.3都与RenderScript问题有关。到目前为止,您对RenderScript的体验如何?我发现在不同的设备上有不一致的结果... –

+0

我注意到19.0.3有一个缺失的库...“android-sdk \ build-tools \ 19.0.3 \ renderscript \ lib \ libclcore.bc”所以我从19.0.2,它似乎与Andorid Studio 0.4.6一起工作。我对renderscript没有任何经验,对不起,昨天是我的第一天。 –

+0

解决我的问题。 – boiledwater

5

随着生成工具21.1.1这个问题消失。

9

我,当我使用构建工具21.1.1和ProGuard的满足相同的问题,您可能需要使用下面的ProGuard设置:

-keepclasseswithmembernames class * { 
    native <methods>; 
} 
-keep class android.support.v8.renderscript.** { *; } 

要了解详情:Using the Android Renderscript v8 Support Library

+0

我认为这应该被接受为答案,这对我有效 – yrazlik