0

I have an App which I created in Android Studio (just one activity/class) and all was good but went onto Android Studio yesterday and it can't reference anything from the xml in my java class which hadn't caused any issues until now.

I've checked online and can't find anything on this and also selected clean project and Rebuild Projectbut this hasn't resolved anything.

My xml is:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="2dp"
    android:paddingLeft="2dp"
    android:paddingRight="2dp"
    android:paddingTop="2dp"
    android:orientation="vertical"
    tools:context="com.example.jer.calculatorconverter.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="vertical"
        android:layout_weight="1">    

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/Sixth_Up"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3">

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent">

                    <TextView
                        android:id="@+id/To"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right"
                        android:textAlignment="gravity"
                        android:layout_alignParentBottom="true"
                        android:layout_margin="4.5dp"
                        android:text="@string/ConvertTo"/>

                    <TextView
                        android:id="@+id/From"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_above="@id/To"
                        android:layout_margin="4.5dp"
                        android:text="@string/ConvertFrom" />

                </RelativeLayout>

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/spinner_color"
                    android:orientation="vertical">

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">

                        <Spinner
                            android:id="@+id/MainSpinner"
                            android:layout_width="match_parent"
                            android:layout_height="20dp"
                            android:padding="0dp"
                            android:layout_margin="0dp"
                            android:textStyle="bold"
                            android:background="@color/seeThrough"
                            tools:listitem="@layout/support_simple_spinner_dropdown_item" />

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/arrow"
                            android:layout_alignParentRight="true"
                            android:rotation="90"
                            android:layout_margin="4dp"/>

                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">

                        <Spinner
                            android:id="@+id/FromSpinner"
                            android:layout_width="match_parent"
                            android:layout_height="20dp"
                            android:padding="0dp"
                            android:background="@color/seeThrough"
                            android:layout_margin="0dp"
                            tools:listitem="@layout/support_simple_spinner_dropdown_item" />

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/arrow"
                            android:layout_alignParentRight="true"
                            android:rotation="90"
                            android:layout_margin="4dp"/>

                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">

                        <Spinner
                            android:id="@+id/ToSpinner"
                            android:layout_width="match_parent"
                            android:layout_height="20dp"
                            android:padding="0dp"
                            android:background="@color/seeThrough"
                            android:layout_margin="0dp"
                            tools:listitem="@layout/support_simple_spinner_dropdown_item" />

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/arrow"
                            android:layout_alignParentRight="true"
                            android:rotation="90"
                            android:layout_margin="4dp"/>

                    </RelativeLayout>


                </LinearLayout>

            </LinearLayout>

            <Button
                android:id="@+id/Convert"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitConvert"
                android:text="@string/Convert" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/Clear"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitClear"
                android:text="@string/Clear"
                android:textColor="@color/Opperater_color"
                android:textStyle="bold"/>

            <Button
                android:id="@+id/Percent"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitOpenBracket"
                android:text="@string/OpenBraket"
                android:textColor="@color/Opperater_color"/>

            <Button
                android:id="@+id/Brackets"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitClosingBracket"
                android:text="@string/ClosingBracket"
                android:textColor="@color/Opperater_color"/>

            <Button
                android:id="@+id/Multiply"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitMultiply"
                android:text="@string/Multiply"
                android:textColor="@color/Opperater_color"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/Seven"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitSeven"
                android:text="@string/Seven"/>

            <Button
                android:id="@+id/Eight"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitEight"
                android:text="@string/Eight" />

            <Button
                android:id="@+id/Nine"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitNine"
                android:text="@string/Nine" />

            <Button
                android:id="@+id/Divide"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitDivide"
                android:text="@string/Divide"
                android:textColor="@color/Opperater_color" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/Four"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitFour"
                android:text="@string/Four"/>

            <Button
                android:id="@+id/Five"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitFive"
                android:text="@string/Five"/>

            <Button
                android:id="@+id/Six"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitSix"
                android:text="@string/Six"/>

            <Button
                android:id="@+id/Plus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitPlus"
                android:text="@string/Plus"
                android:textColor="@color/Opperater_color"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/One"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitOne"
                android:text="@string/One"/>

            <Button
                android:id="@+id/Two"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitTwo"
                android:text="@string/Two"/>

            <Button
                android:id="@+id/Three"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitThree"
                android:text="@string/Three"/>

            <Button
                android:id="@+id/Minus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitMinus"
                android:text="@string/Minus"
                android:textColor="@color/Opperater_color"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/dot"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitDot"
                android:text="@string/dot" />

            <Button
                android:id="@+id/Zero"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitZero"
                android:text="@string/Zero" />

            <Button
                android:id="@+id/PlusMinus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:clickable="true"
                android:onClick="SubmitPlusMinus"
                android:text="@string/Plus_Minus" />

            <Button
                android:id="@+id/Equals"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/operatorbuttons"
                android:clickable="true"
                android:onClick="SubmitEquals"
                android:text="@string/Equals"
                android:textColor="#ffffff"
                android:textStyle="bold" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

And my Java is:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Locale;


/**
 * This app displays calculates, based of of user input.
 */
public class MainActivity extends AppCompatActivity {
    TextView editInput;
    Double dCurrentNumber;
    String sCurrentNumber;
    String sfullString;
    String errorMessage1 = getResources().getString(R.layout.activity_main);
    String sDisplayText;
    Long lBrackets;
    Boolean bDecimel;
    Boolean bMinus;
    Boolean bOperator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Spinner mainspinner = (Spinner) findViewById(R.id.MainSpinner);
        ArrayAdapter<CharSequence> mainAdapter = ArrayAdapter.createFromResource(
                this, R.array.Convert_Type, android.R.layout.simple_spinner_item);
        mainAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mainspinner.setBackgroundResource(R.drawable.spinner_color);
        mainspinner.setAdapter(mainAdapter);
        editInput = (TextView) findViewById(R.id.InputLine);

        mainspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                if (position == 0) {
                    //* code for first selection (Tempeture)
                    // Store editInput value as string
                    //String equasion = editInput.getText().toString();
                    //String numberAsString = "153.25";
                    //double number = Double.parseDouble(numberAsString);
                    Toast.makeText(getApplicationContext(), "this is my Toast message!!! =) " + parentView.getItemAtPosition(position),
                            Toast.LENGTH_LONG).show();


                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parentView) {
            }


        });


        Spinner FromSpinner = (Spinner) findViewById(R.id.FromSpinner);
        ArrayAdapter<CharSequence> fromAdapter = ArrayAdapter.createFromResource(
                this, R.array.Tempeture_Array, android.R.layout.simple_spinner_item);
        fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        FromSpinner.setBackgroundResource(R.drawable.spinner_color);
        FromSpinner.setAdapter(fromAdapter);

        Spinner ToSpinner = (Spinner) findViewById(R.id.ToSpinner);
        ArrayAdapter<CharSequence> toAdapter = ArrayAdapter.createFromResource(
                this, R.array.Tempeture_Array, android.R.layout.simple_spinner_item);
        ToSpinner.setBackgroundResource(R.drawable.spinner_color);
        ToSpinner.setAdapter(toAdapter);
    }

    public void SubmitDot(View v) {
        bDecimel = true;
        if (sCurrentNumber.equals("")) {
            sCurrentNumber = ("0.");
            dCurrentNumber = Double.parseDouble(sCurrentNumber);
            if (bDecimel) {
                Toast.makeText(getApplicationContext(), errorMessage1,
                        Toast.LENGTH_SHORT).show();
            } else {
                sCurrentNumber = (sCurrentNumber + ".");
                dCurrentNumber = Double.parseDouble(sCurrentNumber);
            }
        }
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitZero(View v) {
        sCurrentNumber = sCurrentNumber + "0";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitPlusMinus(View v) {
        bMinus = !bMinus;
        if (sCurrentNumber.equals("")) {
            sDisplayText = sDisplayText + "-";
        } else if (sDisplayText.substring(sDisplayText.length() - 1).equals("-")) {
            sDisplayText = sDisplayText.substring(0, Math.min(sDisplayText.length(),sDisplayText.length()-1));
        } else {
            dCurrentNumber = dCurrentNumber * -1;
            sCurrentNumber = Double.toString(dCurrentNumber);
        }
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitEquals(View v) {
        sfullString = editInput.getText().toString();
        editInput.setText(sfullString + "0");
    }

    public void SubmitOne(View v) {
        sCurrentNumber = sCurrentNumber + "1";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitTwo(View v) {
        sCurrentNumber = sCurrentNumber + "2";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitThree(View v) {
        sCurrentNumber = sCurrentNumber + "3";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitMinus(View v) {
        // TBC
        sfullString = sfullString + sCurrentNumber;
        sCurrentNumber = "";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitFour(View v) {
        sCurrentNumber = sCurrentNumber + "4";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitFive(View v) {
        sCurrentNumber = sCurrentNumber + "5";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitSix(View v) {
        sCurrentNumber = sCurrentNumber + "6";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitPlus(View v) {
        //TBC
        sfullString = editInput.getText().toString();
        editInput.setText(sfullString + "+");
    }

    public void SubmitSeven(View v) {
        sCurrentNumber = sCurrentNumber + "7";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitEight(View v) {
        sCurrentNumber = sCurrentNumber + "8";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitNine(View v) {
        sCurrentNumber = sCurrentNumber + "9";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitDivide(View v) {
        //TBC
        sCurrentNumber = "";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        sDisplayText = sDisplayText + String.format(Locale.getDefault(), "%,f", dCurrentNumber);
        editInput.setText(sDisplayText);
    }

    public void SubmitClear(View v) {
        sfullString = "";
        sCurrentNumber = "";
        dCurrentNumber = Double.parseDouble(sCurrentNumber);
        bMinus = false;
        bDecimel = false;
        bOperator = false;
        lBrackets = 0L;
        editInput.setText(sfullString);
    }

    public void SubmitOpenBracket(View v) {
        sfullString = editInput.getText().toString();
        editInput.setText(sfullString + "(");
        lBrackets = lBrackets++;
    }

    public void SubmitClosingBracket(View v) {
        sfullString = editInput.getText().toString();
        if (lBrackets == 0) {
            Toast.makeText(getApplicationContext(), errorMessage1,
                    Toast.LENGTH_SHORT).show();
        } else {
            lBrackets = lBrackets--;
            editInput.setText(sfullString + ")");
        }
    }

    public void SubmitMultiply(View v) {
        sfullString = editInput.getText().toString();
        editInput.setText(sfullString + "x");
    }

    public void SubmitConvert(View v) {
        sfullString = editInput.getText().toString();


    }
}

I know the Java file isn't the finished article but I don't believe what is there, is incorrect.

Has anyone had this problem or know how I can fix this?

Thanks in advance

Apologies:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1"

    defaultConfig {
        applicationId "com.example.jer.calculatorconverter"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
}
Jeremy
  • 1,337
  • 3
  • 12
  • 26
  • Not sure what you're exact issue may be, but in my experience Android Studio won't auto-generate the R file properly (resulting in the inability to reference it) when the IDE isn't happy about the XML layout or asset files. I've had misnamed ID's, invalid asset names (images), invalid values in resource files, etc. This probably isn't super helpful, but check through your layout file again to make sure nothing is wrong. Sometimes I just back up my XML into a text file and start removing blocks of XML in the IDE until it starts working! – Brian Nov 14 '16 at 23:36
  • Yeah, most likely resource issue. Did you recently updated to the latest app compat, etc? Specifically check if "support_simple_spinner_dropdown_item" is still accessible. Also, try to open a Gradle Console, maybe you'll see some error details there. – dominus Nov 14 '16 at 23:52
  • I've tried that but can't see anything.. it literal was the exact same last last week and this issue wasn't there! – Jeremy Nov 14 '16 at 23:53
  • Post your build.gradle, plase – dominus Nov 14 '16 at 23:57
  • @dominus I think that I've added is what is what is looking for – Jeremy Nov 15 '16 at 00:21
  • @Jeremy, what you posted is just a list of gradle tasks. That doesn't help here. Open project explorer, select your application module (app) and in the context menu select "Open module Settings". Then in the popup window open go to dependencies tab and post what you see there. – dominus Nov 15 '16 at 00:26
  • Post your build gradle module. – HaroldSer Nov 15 '16 at 00:33
  • @dominus My bad, I think I have what you're looking for – Jeremy Nov 15 '16 at 00:45
  • @ScottS done (I think!) – Jeremy Nov 15 '16 at 00:46
  • Possible duplicate of ["cannot resolve symbol R" in Android Studio](http://stackoverflow.com/questions/17054000/cannot-resolve-symbol-r-in-android-studio) – Moon Cheesez Nov 15 '16 at 01:26
  • you can simply add .R class – Yuichi Akiyoshi Nov 15 '16 at 02:22
  • @Jeremy, your build.gradle looks OK. If there were no modifications, you can try to restart Studio - Invalidate Caches / Restart from the File menu. If that doesn't help - you can try to compile from the command line. That may reveal the problem. – dominus Nov 15 '16 at 02:34
  • @MoonCheesez The solution(s) suggested in that didn't work for me – Jeremy Nov 15 '16 at 11:54

1 Answers1

0

Try re-syncing Gradle. You can find the re-sync Gradle button on the top of Android Studios next to the AVD Manager. enter image description here It Looks like this:

enter image description here

William Lin
  • 131
  • 2
  • 8