使用静态内部类时生成错误
Posted
技术标签:
【中文标题】使用静态内部类时生成错误【英文标题】:Build error when using static inner class 【发布时间】:2015-05-27 20:38:03 【问题描述】:我正在为 android 开发一个库,当我在示例项目中使用静态内部类时,我不断收到一个奇怪的错误:“找不到符号变量”:
这是我的分解代码:
Outer.java(SDK 项目)
public class Outer
[...] // Attributes and methods
public static class Inner
public static int x = 42;
MainActivity.java(示例项目)
import com.xxx.xxx.Outer;
public class MainActivity extends Activity
[...] // Attributes
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity", "x = " + Outer.Inner.x);
这是日志错误:
.../sample/MainActivity.java:54:错误:找不到符号 Log.d("MainActivity", "x = " + Outer.Inner.x); ^ 符号:变量内部 位置:类外
我的 SDK 中有另一个案例:
我的类“ImageHelper”有一个静态内部类“Builder”。
我在我的 SDK 中使用它并且它可以工作,但是当我想在示例项目中使用它时,我在构建运行时遇到了同样的错误。
我的代码有错误吗?
【问题讨论】:
奇怪,在这里工作。你清理过你的构建吗?这是一个带有一些提示和技巧的答案...***.com/questions/25706216/… 您的代码似乎没问题。向我们展示您的真实代码。尝试重建您的项目。 是的,我一次又一次地清理和重建 ^^' 【参考方案1】:您是否尝试编译自己的剪切代码?当我自己进行编译时,它工作正常。也许它(提供剪辑)也适用于您并且您的完整程序使用不同的类?
根据你的代码
import com.xxx.xxx.Outer;
并且 Outer 代码中的 package 缺少行,您的项目可能没有一个 Outer,而是很多,其中一个没有内部静态类。
【讨论】:
以上是关于使用静态内部类时生成错误的主要内容,如果未能解决你的问题,请参考以下文章