23.08.2013 / 14:32 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| aNNiMON, Вот ещё немного: исходники Run-time библиотеки + файл, сгенерированный транслтяором. Ну и сам jar-ник
Прикрепленные файлы: gen_file.zip (0.39 кб.) Скачано 16 раз rtl_src.zip (1.04 кб.) Скачано 22 раза Compiled.jar (2.54 кб.) Скачано 112 раз |
23.08.2013 / 14:33 | |
gost6678 Пользователь
| SeTSeR, ооо, это для меня сложновато.
|
23.08.2013 / 14:43 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| SeTSeR, никак не пойму, если ты вызываешь статический метод класса Complied, то зачем тогда вызывать конструктор? Compiled c = new Compiled();
try {
Compiled.main();
То же самое и для RTL. И "new String()" зачем? Compiled.j ты сам писал? У тебя там ошибка, присвоение ведётся прям в методе: RTL.write(X = 2 * X + 1); Видать что-то пропустил. Предположительно между putstatic run/Compiled/X I и getstatic run/Compiled/X I. __________________
let live Изменено aNNiMON (23.08 / 14:45) (всего 1 раз) |
23.08.2013 / 14:52 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| aNNiMON, мне всегда казалось, что для обращения к любому полю/методу класса нужно иметь хотя бы один объект класса иначе будет NullPointer. Разве нет? Про файл Compiled.j я писал в пред. посте. С присваиванием всё правильно. Это после оптимизатора.
Изменено SeTSeR (23.08 / 14:56) (всего 1 раз) |
23.08.2013 / 14:58 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| SeTSeR, статическим методам и полям не нужен экземпляр класса.
__________________
let live Изменено aNNiMON (23.08 / 14:58) (всего 1 раз) |
23.08.2013 / 15:02 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| Нашёл ещё один интересный факт. Если декомпилить Compiled.class и скомпилить вместе с классами main и rtl, то всё работает, а если его прогнать через ProGuard, то будет вышеуказанная ошибка при запуске. Изменено SeTSeR (23.08 / 15:08) (всего 1 раз) |
23.08.2013 / 18:59 | |
mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| SeTSeR, а как бы если прогнать все через обфускатор? А то PG назовет переменные, как ему вздумается и фиг знает, что выйдет. PS. Предположение, всего лишь.
|
23.08.2013 / 19:00 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| mrEDitor, Обфускацию я не юзал. Я его использовал для оптимизации и преверификации
|
23.08.2013 / 20:42 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| Отключил в PG оптимизацию, и всё запахало.
|
23.08.2013 / 23:13 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| оптимизатор удаляет не используеммые объекты/методы/переменные, так же может менять и флаги доступа, в общем творит что хочет
__________________
знает толк |