Eclipse не может прочитать формат кода файла RenderScript .rs

У меня очень хорошие знания Java для Android (1 год разработки), и сейчас я пытаюсь изучить Android RenderScript API (но документации по нему не так много), но у меня с ним проблемы.

Я узнал, что нам нужно добавить следующие строки на project.propert:

renderscript.target=19
renderscript.support.mode=true

Я создал файл .rs в com.mypackage.script под названием FireworkScript, который имеет следующее:

#pragma version(1)

#pragma rs java_package_name(com.mypackage.script)

#include "rs_graphics.rsh"

int root(){

    return 0;

}

void init(){

} 

Изначально у меня были некоторые проблемы с библиотекой поддержки RenderScript v8, но я исправил их, вручную добавив renderscript-v8.jar в свой проект (Путь сборки >> Настроить путь сборки >> Библиотеки > > Добавить внешние JAR)

Как и ожидалось, Eclipse сгенерировал ScriptC_FireworkScript.java в папке gen и fireworkscript.bc в bin/res/bc/raw.

Но проблема в том: Eclipse не "читает" код внутри файла .rs, запись в этот файл с помощью eclipse аналогична записи в любом отдельном текстовом редакторе.

Я знаю, что приведенному выше примеру нужно ядро, но как мне его написать, если Eclipse не читает формат кода? Я знаю простой конструктор typedef struct в C, но я не знаком с объявлениями и аргументами ядра в C99.

Ошибки нахожу только с помощью project > clean, вроде как "обновляет" компилятор, но в любом случае у меня нет ни помощи идентификации, ни раскрашивания текста, ничего, только файл с черными текстами на нем, что можно сделать, чтобы исправить это? Я также пытался открыть файл .rs с помощью Dev C++ и Notepad++, но получил тот же результат. Может быть, моя машина не знает форматирования кода C99?

Могу ли я что-нибудь сделать?

Заранее спасибо.

Я использую Eclipse Luna с подключаемым модулем ADT, инструментами сборки SDK версии 23.0.2, и все обновлено до последней версии.


person Murillo Ferreira    schedule 03.07.2014    source источник
comment
Простой обходной путь: Из файла Renderscript *.rs вставьте строку #include <YourRenderscriptSource.h>, а затем поместите туда весь свой код Renderscript (или те строки кода, для которых вам важна подсветка).   -  person rwong    schedule 07.07.2014
comment
Google движется к Android Studio. Android ADT — это подключаемый модуль, предоставляемый Google; следовательно, решение этой проблемы не входит в обязанности Eclipse. Не ожидайте слишком много улучшений Google в Eclipse Android ADT.   -  person rwong    schedule 07.07.2014
comment
Спасибо @rwong, я очень ценю вашу помощь, спасибо!   -  person Murillo Ferreira    schedule 07.07.2014


Ответы (1)


Спецификация C99, которую RenderScript использует для своего кода ядра, - это просто C, поэтому вы можете использовать любой редактор, способный редактировать файлы C/C++, такие как те два, которые вы упомянули. Это должно помочь вам получить подсветку синтаксиса, по крайней мере. Вам просто нужно настроить их для обработки файлов .rs как кода C. См., например, это страница, в которой объясняется, как это сделать в Notepad++.

Если вы действительно хотите сохранить все в Eclipse, вы также можете попробовать установить среду разработки C для Eclipse, но это может быть излишним просто для подсветки синтаксиса. Я сомневаюсь, что вы получите какую-либо реальную справку по контексту/функциям или более качественные отчеты об ошибках, поскольку RS API в любом случае все еще плохо интегрирован в какую-либо IDE.

person monoeci    schedule 03.07.2014
comment
Спасибо, это действительно поможет мне, но знаете ли вы, нормально ли это с затмением? В любом случае, +1 - person Murillo Ferreira; 03.07.2014
comment
Насколько я знаю, именно так обстоит дело с Eclipse на данный момент. Я уверен (я надеюсь), что в конечном итоге они лучше интегрируют RS API в ADT, чтобы обеспечить лучшую обратную связь об ошибках и тому подобное (и, возможно, даже отладку RenderScript), но пока это так. Я много работаю с RS, и мне также приходится постоянно чистить проект, как вы упомянули, и так далее. - person monoeci; 04.07.2014
comment
Спасибо за помощь. Вы сказали, что работаете с РС, знаете ли вы что-нибудь о следующем вопросе? Я разместил вопрос здесь, пожалуйста, посмотрите и скажите мне, что вы думаете. Я могу узнать все сам, я просто хочу решить проблему с отсутствующим классом: stackoverflow.com/questions/24560313/ - person Murillo Ferreira; 04.07.2014