Android 11 RenderScript: Failed to load runtime , loading default

解决方案
application中添加属性
android:allowNativeHeapPointerTagging="false"

allowNativeHeapPointerTagging 是一个用于 Android 应用程序的高级内存分配选项。这个选项允许你为本机堆上的指针启用或禁用标记(tagging)。在 Android 8.0 (API 级别 26) 及更高版本中引入了 Native 堆指针标记功能,它有助于检测和预防内存安全问题,如越界访问和使用已释放的内存。

具体来说,allowNativeHeapPointerTagging 有以下几个方面的作用:

  1. 启用标记:将其设置为 true(默认值)时,启用本机堆指针标记功能。这将使得应用程序可以更容易地检测和防止内存安全问题。

  2. 禁用标记:将其设置为 false 时,禁用本机堆指针标记。这意味着应用程序不会受益于指针标记功能,但可以在某些情况下提高性能。禁用标记可能会导致一些内存安全问题不容易被检测到。

要在应用程序中使用 allowNativeHeapPointerTagging,通常需要在应用的 Application 类或其他适当的位置设置此选项。例如,在 Application 类的 onCreate 方法中可以这样设置:

import android.app.Application;
import android.os.StrictMode;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        
        // 启用本机堆指针标记
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectLeakedClosableObjects()
            .penaltyLog()
            .penaltyDeath()
            .setClassInstanceLimit(MyClass.class, 1)
            .build());
    }
}

在上述示例中,StrictMode 被用来启用本机堆指针标记以及其他内存和线程相关的策略。你可以根据应用的需求自定义这些策略。

需要注意的是,启用本机堆指针标记可能会在一些情况下引入性能开销,因此需要根据应用的具体情况权衡性能和内存安全。

你可能感兴趣的:(Android 11 RenderScript: Failed to load runtime , loading default)