Не получается отобразить SVG файл через intent

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Не получается отобразить SVG файл через intent

Сообщение fundator » 26 сен 2013, 15:58

Помогите, пожалуйста понять, почему не происходит отображение SVG файла при передаче его из одной активности в другую. Библиотеку svgAndroid2.12Dec2011.jar подключил, файл в SVG формате поместил в raw.

Из:

Код: Выделить всё

[syntax=java]// нажатие на элемент expListView.setOnChildClickListener(new OnChildClickListener() {public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {

            Intent intent = new Intent(FirstActivity.this,
                    SecondActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            if (groups[0] != null && items_groups_one[0] != null && id == 0)
                intent.putExtra(SecondActivity.PICTURE,
                        png_items_groups_one[0]);
            startActivity(intent);

            return false;
        }

    });[/syntax]
В:

Код: Выделить всё

[syntax=java]public class SecondActivity extends FirstActivity implements OnClickListener {
	public static final String PICTURE = "picture";

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);

		ImageView image = new ImageView(this);

		image = (ImageView) findViewById(R.id.aboutImage);
		image.setBackgroundColor(Color.WHITE);
		image.setImageDrawable(drawable);

	}

	Intent intent = getIntent();
	// Получаем данные от деятельности FirstActivity и парсим в SVG
	SVG svg = SVGParser.getSVGFromResource(getResources(),
			intent.getIntExtra(PICTURE, png_items_groups_one[0]));
	Drawable drawable = svg.createPictureDrawable();

}[/syntax]
Лог пишет:
  • 09-26 09:56:14.441: E/AndroidRuntime(1736): FATAL EXCEPTION: main
    09-26 09:56:14.441: E/AndroidRuntime(1736): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{ua.fundator.i/ua.fundator.i.SecondActivity}: java.lang.NullPointerException
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread.access$600(ActivityThread.java:141)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.os.Handler.dispatchMessage(Handler.java:99)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.os.Looper.loop(Looper.java:137)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread.main(ActivityThread.java:5103)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at java.lang.reflect.Method.invokeNative(Native Method)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at java.lang.reflect.Method.invoke(Method.java:525)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at dalvik.system.NativeStart.main(Native Method)
    09-26 09:56:14.441: E/AndroidRuntime(1736): Caused by: java.lang.NullPointerException
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.content.ContextWrapper.getResources(ContextWrapper.java:89)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at ua.fundator.i.SecondActivity.<init>(SecondActivity.java:33)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at java.lang.Class.newInstanceImpl(Native Method)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at java.lang.Class.newInstance(Class.java:1130)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
    09-26 09:56:14.441: E/AndroidRuntime(1736): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
    09-26 09:56:14.441: E/AndroidRuntime(1736): ... 11 more

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не получается отобразить SVG файл через intent

Сообщение Foenix » 26 сен 2013, 17:00

Ошибка тут at ua.fundator.i.SecondActivity.<init>(SecondActivity.java:33)

не проинициализированная переменная выше этой строчки.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Не получается отобразить SVG файл через intent

Сообщение fundator » 26 сен 2013, 17:31

Без изменений...

Код: Выделить всё

[syntax=java]public class SecondActivity extends FirstActivity implements OnClickListener {
	public static final String PICTURE = "picture";

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);

		ImageView image = new ImageView(this);

		image = (ImageView) findViewById(R.id.aboutImage);
		image.setBackgroundColor(Color.WHITE);
		image.setImageDrawable(drawable);

	}

	Intent intent = getIntent();
	int imageId_one = intent.getIntExtra(PICTURE, png_items_groups_one[0]);
	// Получаем данные от деятельности FirstActivity и парсим в SVG
	SVG svg = SVGParser.getSVGFromResource(getResources(), imageId_one);
	Drawable drawable = svg.createPictureDrawable();[/syntax]
Причём SVGParser начинает "дышать" (появляется подсветка кода svg и drawable) только за границами метода onCreate.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не получается отобразить SVG файл через intent

Сообщение Foenix » 26 сен 2013, 17:44

Щелкни два раза на строчку, которую я указала. Вней ищи переменную, которую ты ИСПОЛЬЗУЕШЬ, и которая равна null. Затем ищи - есть ли у тебя выше этой строчки какая-то попытка ее инициализировать (т.е. запихнуть в нее значение), если есть, то в этой строке что-то не находит, если нету, то придется создать..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

fundator
Сообщения: 34
Зарегистрирован: 06 сен 2013, 18:39

Re: Не получается отобразить SVG файл через intent

Сообщение fundator » 07 окт 2013, 20:45

Разобрался! Дело не в коде. Библиотека svgAndroid2.12Dec2011.jar "трефная".

Ответить