Задать вопрос
@Nordman99

Пишу первый проект Hello World и сразу фейл, в чем ошибка?

Всем доброго дня, подскажите по ошибке, только начал изучать разработку на Андроид студио по книге М.А.Федотенко "Разработка мобильных приложений" 2019г
Что в Андроид студио что в джаве я чуть больше чем ноль
Собрал первый проект по мануалу из книги - на экран закрепляется кнопка Start, в либах андр.студио такой нет, скачал рисунок с инета, обозвал Button.png закинул в папку проекта в \AndroidStudioProjects\HelloWorld\app\src\main\res\drawable\
Сделал все по мануалу, запускаю Build - Make Project
В процессе билда сразу ошибка - студия ругнулась, ошибка в том что в названии файлов ресурсов не должно быть больших букв, хорошо переименовал Button.png в button.png
указал по новой на этой файл в свойствах кнопки, однако в свойствах по прежнему осталось название с большой буквы, Build - Make Project опять не прошел, удалил Button.png вообще, и очистил ссылку на него с свойствах кнопки, обновил ресурсы, закинул button.png опять, обновил ресурсы, указал в свойствах кнопки button.png, теперь выполняю Build - Make Project и теперь другие ошибки:
1ая ошибка:
startButton.setImageResource(R.drawable.android);
^
symbol: variable startButton
location: class MainActivity

2ая ошибка:
startButton.setClickable(false);
^
symbol: variable startButton
location: class MainActivity

6155ad7bbaa7a666278593.png
Вот сам код MainActivity.java
package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView helloText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        helloText= (TextView) findViewById(R.id.helloText);
    }

    public void onStartButtonClick(View view) {
        startButton.setImageResource(R.drawable.android);   - 20 строка, 1ая ошибка
        helloText.setVisibility(view.VISIBLE);
        startButton.setClickable(false);       - 22 строка, 2ая ошибка

    }
}


AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworld">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="Мое первое приложение"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.HelloWorld">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
  • Вопрос задан
  • 386 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 2
Раз вы пишите на Java, то сразу советую использовать SceneBuilder для создания GUI.
Описание события onButtonClickEvent так же советую писать в отдельном контроллере.
Ошибки возникают из-за несуществующего startButton.
Ответ написан
alexgp13
@alexgp13
Руководитель ИТ-проектов
Activity и интерфейс существуют в Андроиде независимо друг от друга, перед кодом с ошибкой (перед 20 строкой) добавьте строку
ImageButton startButton = findViewById(R.id.startButton);


То есть Вам надо объявить эту самую переменную startButton и связать ее с элементом интерфейса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BorLaze
@BorLaze
Java developer
только начал изучать разработку на Андроид студио

Что в Андроид студио что в джаве я чуть больше чем ноль


потому что изучать надо все-таки сначала сам язык, а уже потом его применение под конкретную платформу

тогда не появлялись бы вопросы "что тут не так", когда переменная не объявлена...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы