2015-03-24 3 views
4

Я занимаюсь разработкой библиотеки для Android, и я получаю странную ошибку о статическом внутреннем классе, когда я использую его в примере проекта: «не может найти переменную символ»:ошибка сборки при использовании статического внутреннего класса

Это мой разложенном код:

Outer.java (проект SDK)

public class Outer { 

    [...] // Attributes and methods 

    public static class Inner { 
     public static int x = 42; 
    } 
} 

MainActivity.java (Sam проект PLE)

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: error: cannot find symbol Log.d("MainActivity", "x = " + Outer.Inner.x);
^

symbol: variable Inner
location: class Outer

Я еще один случай в моей SDK:

Мой класс "ImageHelper" имеет статический внутренний класс «Builder ».

Я использую его в своем SDK, и он работает, но когда я хочу использовать его в примере проекта, у меня такая же ошибка при запуске сборки.

Есть ошибки в моем коде?

+0

Странно, работает здесь. Вы очистили свою сборку? Вот ответ с некоторыми подсказками и трюками ... http://stackoverflow.com/questions/25706216/what-does-a-cannot-find-symbol-compilation-error-mean – ElDuderino

+0

ваш код выглядит нормально. покажите нам свой настоящий код. Попробуйте перестроить свой проект. – dit

+0

Да, я очищаю и восстанавливаю снова и снова ^^ ' – titichop

ответ

0

Вы пытались скомпилировать свой собственный код сокращения? Он отлично работает, когда я делаю компиляцию самостоятельно. Может быть, он (предоставленный cut) работает для вас тоже, и ваша полная программа использует другой класс?

на основе кода

import com.xxx.xxx.Outer; 

и отсутствие линии для упаковки в космическом коде, возможно, что ваш проект не имеет один Outer но много и один из них имеет никакого внутреннего статического класса.

Смежные вопросы