Android — Renderscript Распределение Сбои

Не могу понять, потому что, когда я пытаюсь использовать Распределение как в качестве ввода, так и вывода, программа вылетает.

Я проверил, если из-за какого-то разрешения в манифесте Android, но ни один.

Project.properties выглядит следующим образом:

target=android-19
android.library.reference.1=../appcompat_v7
renderscript.target=19
renderscript.support.mode=true
sdk.buildtools=20.0.0

Код выглядит следующим образом:

...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

Allocation inputAlloc = Allocation.createFromBitmap(r, bmp, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);

...

И logcat показывает мне следующие ошибки:

09-25 11:32:08.623: E/AndroidRuntime(537): FATAL EXCEPTION: main
09-25 11:32:08.623: E/AndroidRuntime(537): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gpurenderscript/com.example.gpurenderscript.MainActivity}: java.lang.NullPointerException
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.os.Looper.loop(Looper.java:123)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread.main(ActivityThread.java:3683)
09-25 11:32:08.623: E/AndroidRuntime(537):  at java.lang.reflect.Method.invokeNative(Native Method)
09-25 11:32:08.623: E/AndroidRuntime(537):  at java.lang.reflect.Method.invoke(Method.java:507)
09-25 11:32:08.623: E/AndroidRuntime(537):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-25 11:32:08.623: E/AndroidRuntime(537):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-25 11:32:08.623: E/AndroidRuntime(537):  at dalvik.system.NativeStart.main(Native Method)
09-25 11:32:08.623: E/AndroidRuntime(537): Caused by: java.lang.NullPointerException
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.support.v8.renderscript.Allocation.createFromBitmap(Allocation.java:1337)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.support.v8.renderscript.Allocation.createFromBitmap(Allocation.java:1388)
09-25 11:32:08.623: E/AndroidRuntime(537):  at com.example.gpurenderscript.MainActivity.onCreate(MainActivity.java:33)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-25 11:32:08.623: E/AndroidRuntime(537):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
09-25 11:32:08.623: E/AndroidRuntime(537):  ... 11 more

Большое спасибо!!

0

Решение

Удалить строку:

options.inJustDecodeBounds = true

Это настройка BitmapFactory с информацией о размерах для вашего растрового изображения, но decodeResource() метод на самом деле возвращает ноль, так как не было выделено памяти для вспомогательных пикселей, поэтому нет Bitmap объект. Вы должны иметь поддерживающие пиксели для того, чтобы Allocation на самом деле, чтобы он мог маршалировать данные между Java и RenderScript.

2

Другие решения


По вопросам рекламы [email protected]