This class should be public (android.support.v7.in

2019-02-02 23:41发布

问题:

I am trying to create a Android Application which uses 3 spinners. I keep getting this error and I can't figure out how to fix it. This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)

回答1:

On the "v7-appcompat" library:

preferences -> Android Lint Preferences

Search for "Instantiatable" and set to Warning.



回答2:

If you are using Eclipse:

Project > Clean > OK

Or Try:

Preferences -> Android Lint Preferences

Search for Instantiatable and set as Warning.

http://developer.android.com/tools/debugging/improving-w-lint.html

This worked for me.



回答3:

Go to appcompat_v7 library -> Properties -> Android Lint Preferences -> Instantiatable -> Select "Warning" severity.

Android Lint Checks

Instantiatable Summary: Ensures that classes registered in the manifest file are instantiatable

Priority: 6 / 10 Severity: Warning Category: Correctness

Activities, services, broadcast receivers etc. registered in the manifest file must be "instiantable" by the system, which means that the class must be public, it must have an empty public constructor, and if it's an inner class, it must be a static inner class.



回答4:

I found a solution, in the project.properties file, just replace the line saying

android.library.reference.1=../appcompat_v7_3 

with

android.library.reference.1=../appcompat_v7

That solved the problem to me at least.



回答5:

This is not a true solution, but maybe help.

Create project with higher API level then 8.

Whenever I select minimum Required SDK to API level 9 instead 8 this error does not happen.

Observation: My last answer was deleted, maybe the moderator think it was barely more than a link to an external site, for this reason I don't posted the link again.



回答6:

Eclipse inside the setup issues. Windows -> Preferences -> Android -> Lint Error Checking -> Enter "Instantiatable" Inside the Issues -> select the Search Content -> lower right corner Severity election warning -> OK!



回答7:

You can also do this manually in the build.gradle file:

lintOptions {
    abortOnError false
    disable "Instantiatable"
}