Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
p10ne
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
#1

Ошибка в вызове нового активити в android - Программирование Android

09.08.2014, 15:20. Просмотров 739. Ответов 6
Метки нет (Все метки)

Казалось бы, что может быть проще, но ни как не могу осуществить эту функцию в приложении. Учусь по видеоурокам, даже смотрел код на startAndroid - результатов никаких. При попытке перейти на другой активити происходит крах приложения. Прилагаю код, может натолкните на мысль, что не так:

Первый активити(ИЗ которого осуществляется переход):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.itog;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    public void btnClick(View view) {
        
        Intent intent = new Intent(this, NewActivity.class);
        startActivity(intent);
    }
}
Второй активити(НА который осуществляется переход):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.example.itog;
 
import android.app.Activity;
import android.os.Bundle;
 
public class NewActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);
    }
}
Программирую в eclipse. Первый активити запускается без проблем. Крах выходит как при запуске в эмуляторе, так и на реальном устройстве. Названия классов, переменных и т.д. правильные.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2014, 15:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в вызове нового активити в android (Программирование Android):

Ошибка при вызове активити - Программирование Android
Всем доброго времени суток. Столкнулся вот с такой проблемой, не могу вызвать активити Вот код главного активити, из которого вызываю ...

Не работает If и запуск нового активити - Программирование Android
Есть загрузка данных с базы MySql в переменные, есть 2 EditText в которые вводятся текстовые данные, нужно проверить данные с Едитов и...

Вернуться в то же активити (без открытия нового) - Программирование Android
Здравствуйте! Такой вопрос. Есть сервис, отсылающий уведомление. По нажатию на уведомление нужно попасть на определенное активити....

Завершать активити с внешней кнопкой power в android - Программирование Android
Здравствуйте! Как можно завершать активити когда я его не выключаю(то есть не завершаю), а именно завершается активити когда я нажимаю на...

Android кнопка “войти” работает только в главной активити (Navigation Drawer) - Программирование Android
в приложении несколько активити с Navigation Drawer, в nav_header главной сделал onClickListener на кнопку Войти, остальные активити...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

6
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
10.08.2014, 20:32 #2
Вторую активити в манифесте не забыли объявить?
P.S. всегда читайте/выкладывайте сообщения об ошибке
0
p10ne
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
11.08.2014, 11:42  [ТС] #3
В манифест добавляется автоматически при создании, я проверял - там два активити
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.08.2014, 11:58 #4
Цитата Сообщение от p10ne Посмотреть сообщение
Java
1
2
3
public void btnClick(View view) {
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
}
Должно быть:
Java
1
2
3
public void btnClick(View view) {
Intent intent = new Intent(MainActivity.this, NewActivity.class);
startActivity(intent);
Почему? Потому что в вашем варианте this - это листенер, соответственно листенер не может выступать контекстом для интента. Контекстом должна быть активити, что получается таким образом:
Java
1
MainActivity.this
0
p10ne
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
11.08.2014, 15:12  [ТС] #5
Все равно ни чего не выходит.

Вот логи, может так будет более понятно:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
08-11 15:08:21.390: W/asset(19681): Copying FileAsset 0x5152c7b8 (zip:/data/app/com.example.itog-1.apk:/resources.arsc) to buffer size 1804 to make it aligned.
08-11 15:08:21.511: I/Adreno200-EGL(19681): <qeglDrvAPI_eglInitialize:265>: EGL 1.4 QUALCOMM build:  (CL3449569)
08-11 15:08:21.511: I/Adreno200-EGL(19681): Build Date: 05/14/13 Tue
08-11 15:08:21.511: I/Adreno200-EGL(19681): Local Branch: htc2
08-11 15:08:21.511: I/Adreno200-EGL(19681): Remote Branch: 
08-11 15:08:21.511: I/Adreno200-EGL(19681): Local Patches: 
08-11 15:08:21.511: I/Adreno200-EGL(19681): Reconstruct Branch: 
08-11 15:08:21.651: D/qdmemalloc(19681): ion: Mapped buffer base:0x54812000 size:2088960 offset:0 fd:69
08-11 15:08:21.651: D/qdmemalloc(19681): ion: Mapped buffer base:0x511db000 size:4096 offset:0 fd:70
08-11 15:08:26.856: D/qdmemalloc(19681): ion: Mapped buffer base:0x54b10000 size:2088960 offset:0 fd:72
08-11 15:08:26.856: D/qdmemalloc(19681): ion: Mapped buffer base:0x512a2000 size:4096 offset:0 fd:73
08-11 15:08:26.916: W/dalvikvm(19681): threadid=1: thread exiting with uncaught exception (group=0x41f34ba0)
08-11 15:08:26.916: E/AndroidRuntime(19681): FATAL EXCEPTION: main
08-11 15:08:26.916: E/AndroidRuntime(19681): java.lang.IllegalStateException: Could not execute method of the activity
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.view.View$1.onClick(View.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.view.View.performClick(View.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.view.View$PerformClick.run(View.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.os.Handler.handleCallback(Handler.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.os.Handler.dispatchMessage(Handler.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.os.Looper.loop(Looper.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.ActivityThread.main(ActivityThread.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at java.lang.reflect.Method.invokeNative(Native Method)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at java.lang.reflect.Method.invoke(Method.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at dalvik.system.NativeStart.main(Native Method)
08-11 15:08:26.916: E/AndroidRuntime(19681): Caused by: java.lang.reflect.InvocationTargetException
08-11 15:08:26.916: E/AndroidRuntime(19681):    at java.lang.reflect.Method.invokeNative(Native Method)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at java.lang.reflect.Method.invoke(Method.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    ... 13 more
08-11 15:08:26.916: E/AndroidRuntime(19681): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.itog/com.example.itog.NewActivity}; have you declared this activity in your AndroidManifest.xml?
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Instrumentation.execStartActivity(Instrumentation.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Activity.startActivityForResult(Activity.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Activity.startActivityForResult(Activity.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Activity.startActivity(Activity.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at android.app.Activity.startActivity(Activity.java)
08-11 15:08:26.916: E/AndroidRuntime(19681):    at com.example.itog.MainActivity.btnClick(MainActivity.java:22)
08-11 15:08:26.916: E/AndroidRuntime(19681):    ... 15 more
08-11 15:08:28.838: D/Process(19681): killProcess, pid=19681
08-11 15:08:28.838: D/Process(19681): dalvik.system.VMStack.getThreadStackTrace(Native Method)
08-11 15:08:28.838: D/Process(19681): java.lang.Thread.getStackTrace(Thread.java)
08-11 15:08:28.838: D/Process(19681): android.os.Process.killProcess(Process.java)
08-11 15:08:28.838: D/Process(19681): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java)
08-11 15:08:28.838: D/Process(19681): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java)
08-11 15:08:28.838: D/Process(19681): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java)
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.08.2014, 15:25 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от p10ne Посмотреть сообщение
08-11 15:08:26.916: E/AndroidRuntime(19681): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.itog/com.example.itog.NewActivity}; have you declared this activity in your AndroidManifest.xml?
Цитата Сообщение от forcelain Посмотреть сообщение
Вторую активити в манифесте не забыли объявить?
Видимо всетаки забыли.
1
p10ne
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
11.08.2014, 15:58  [ТС] #7
Все в манифесте объявлено. Может быть конечно какая то ошибка.
В файле манифест, во вкладке aplication -> aplication nodes есть два активити: MainActivity и NewActivity.
Мне кажется что в коде чего то не хватает, может тут что то не так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.itog"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" android:theme="@style/AppTheme" android:icon="@drawable/ic_launcher">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".NewActivity"
            android:label="@string/title_activity_new" >
        </activity>
    </application>
 
</manifest>
Добавлено через 7 минут
Да, вы были правы. Ошибка в манифесте. Не хватало пары атрибутов в коде второго активити:
Java
1
2
android:theme="@style/AppTheme" 
android:icon="@drawable/ic_launcher"
Хотя я выставлял значения через редактор. Видимо плохо сохранил
0
11.08.2014, 15:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2014, 15:58
Привет! Вот еще темы с ответами:

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки &quot;войти&quot; в отдельном классе &quot;сокетсервер&quot;(+в отдельном потоке)...

Идея нового Android софта - Программирование Android
Я не программист но у меня есть идея можна ли создават прогу для андроида который собирал GPS инфо (longtitude,latitude) о...

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru