Android Studio Marks syntax as error, but gradle c

2019-01-27 15:36发布

问题:

I have a project in Android Studio which compiles with Gradle. The general file structure is

MyProject
  - MyProjectSource
  - Libraries
     - ActionBarSherlock

My project is built with Gradle and will compile without issue. However in the lines within my activity where I include a component from ActionBarSherlock, Android Studio marks it as an error.

I have noticed that Android Studio has also generated .iml files. So my question: Does Android Studio ignore the gradle build when assessing whether something is valid syntax or not?

Obviously this is not a project blocking problem but it does slow velocity not being able to take advantage of the full set of tools Android Studio has to offer.

Thanks in advance for any help.

回答1:

These are not errors actually, this a bug in Android studio( 0.4.2 ) for resolving the symbol and fixed for the next release( 0.4.3 ).

To get Rid of these until the release do the following

  1. Clean your project using Build > Clean Project
  2. Close your Android Studio
  3. Take Backup of your project
  4. Delete all .iml files inside your project
  5. Delete content of .idea directory
  6. Open Studio and wait until it completes the sync with gradle

Also verify if you are seeing any error in File > Project Structure . If there is any error saying "Dependency Not Added "click on that and using red bulb on right side Add them to dependency.

UPDATE

Android Studio 0.4.3 is available on Canary Channel Now.



回答2:

UPDATE: @laochiv, I have found that cleaning manually the folder .idea/libraries and clicking afterward on "Sync Project with Gradle Files" solves the problem. Apparently this Sync does not remove elements, but keep the old ones and add the current ones. Probably a bug to report :)


I am having the same problem. However, I am using ABS directly from Maven.

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
}

Even the ABS Gradle Sample application marks a syntax error, although it compiles.

However, in another computer everything is working perfectly. I can not think of different conditions in each scenario.



回答3:

"Does Android Studio ignore the gradle build when assessing whether something is valid syntax or not?" Yes. Android Studio imports the project configuration but runs its own compiler as you are editing and saving (you can even change it to the Eclipse ECJ compiler). The true authority on the build is Gradle, and AS is still in beta. You can try to run the gradle resync or close and reimport the project. I have had to manipulate AS like this many times, especially after making edits to build.gradle.

Edit: I have found it better to use ActionBarSherlock as a gradle dependency rather than a library directory.

compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'

You will need to use the SDK manager and install the local maven repository.

But it is possible to eventually get rid of these compile errors, as long as your build.gradle doesn't create any extra sourceSets that AS doesn't understand; try not to deviate too much from the android gradle plugin examples.

Also, I've been running the Canary updates of AS for the latest and greatest.



回答4:

I don't know how to add a library using MavenCentral. I follow these steps to include a library

  1. Add library in App_Name/App_Name/libs folder.
  2. In App_Name/build.gradle add this

dependencies {

compile ---

compile files('libs/fileName.jar') }

  1. ./gradlew clean
  2. Make sure your Android studio is updated.


回答5:

Go through the link and it worked for me.

1.) Choose File option from menu on left top side of android studio. 2.) Select the option : "Invalidate Cache/ Restart.." It will open an dialog. 3.) Click on the first button with option : "Invalidate and Restart" 4.) It will close the studio and restart it. Start indexing of the project. It resolved my problem

Go to File -> Invalidate Cache/ Restart -> Invalidate and Restart

Source https://www.youtube.com/watch?v=FX_gCTpqhwM



回答6:

Here i'm talking about android studio version v3.1.2 where this same issue happened.In later android studio version(above 3.0.1) this issue again rises. So, I solved this by going through few things and here is how

  1. Close android studio first

  2. Navigate to your Project Folder

  3. Delete .gradle and .idea folder (.gradle and .idea is hidden files. so make sure you tick Show Hidden Files in your File Explorer option to see these files

  4. Open your project in android studio now

    This Time another issue (unsupported module) will arise, but don't worry. I got you

  5. Goto File in android studio and hit Sync Project with Gradle Files

Tada..! you're done now!



回答7:

I had this problem in Android Studio 4.2, it might be fixed on 4.3

I have noticed that adding some dependencies did not attach the classes.jar to the dependency, so Gradle recognises everything but the IDE doesn't. To fix it:

  • Open Module Settings of your project
  • Select the dependency that has the error
  • Click Add (+) for that dependency (bottom of the pop up)
  • Navigate to your-project/build/exploded-bundles/your-dependency/classes.jar
  • The IDE should recognise the files now

Hope it helps



回答8:

I had this today and gradle update/sync didn't solve. But updating to latest version of Android Studio 2.2 update 5 fixed (was on 2.1).



回答9:

Simplest Solution

  • Comment/Remove the dependency which is showing syntax error & Sync Project.
  • Uncomment/Add again & Sync Project.

Yeah! error gone...

Before

After