2012-02-16 3 views
0

findViewById는 해당 id가 있어도 버튼과 radiusBar를 검색 할 수 없습니다. saveButton 또는 radiusBar를 시작할 때 코드가 충돌합니다.findViewById를 호출하여 일부 구성 요소를 찾을 수 없습니다.

acticity :

private Button saveButton; 
    private EditText titleText; 
    private SeekBar radiusBar; 
    private TextView radiusValue; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     titleText = (EditText) findViewById(R.id.title); 
     radiusValue = (TextView) findViewById(R.id.radiusValue); 
     saveButton = (Button) findViewById(R.id.confirm); 
    radiusBar = (SeekBar) findViewById(R.id.radiusBar); 

XML 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:padding="3dp" 
    android:text="@string/title" 
    android:textColor="#00ffff" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<EditText 
    android:id="@+id/title" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="3dp" > 

    <requestFocus /> 
</EditText> 

<TextView 
    android:id="@+id/myLocationText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="3dp" 
    android:text="@string/hello" 
    android:textColor="#ffffff" 
    android:textSize="15sp" /> 

<com.google.android.maps.MapView 
    android:id="@+id/myMapView" 
    android:layout_width="fill_parent" 
    android:layout_height="300dp" 
    android:apiKey="my google maps api key" 
    android:clickable="true" 
    android:enabled="true" 
    android:padding="5dp" > 
</com.google.android.maps.MapView> 

<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/radiusText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:paddingLeft="3dip" 
     android:paddingRight="3dip" 
     android:text="@string/proximity" 
     android:textColor="#00ffff" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/radiusText" > 

     <TextView 
      android:id="@+id/radiusValue" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="3dip" 
      android:paddingRight="3dip" 
      android:text="@string/radius" 
      android:textColor="#00ffff" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

    <SeekBar 
     android:id="@+id/radiusBar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/radiusText" 
     android:max="1000" 
     android:padding="5dip" 
     android:soundEffectsEnabled="true" /> 

    <Button 
     android:id="@+id/confirm" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/radiusBar" 
     android:padding="3dp" 
     android:text="@string/confirm" 
     android:textSize="20sp" /> 
</RelativeLayout> 

내가 안드로이드에 새로운 오전. 비록 내가 오래된 학교 주석을 쓰거나 ddms를 사용했는데 왜 이런 일이 일어나는지 알 수 없었다. 도와 주셔서 감사합니다. 나는 비슷한 문제가 있었다 때마다

+0

프로젝트를 정리하셨습니까? – waqaslam

+0

프로젝트를 청소 한 후 문제가 해결되었습니다. – mkeremkeskin

답변

1

때를 "crash"라고 말하면 "... 그리고 이것은 오류 메시지가있는 로그 출력입니다"라고 말하면됩니다. 어쨌든 코드가 컴파일됨에 따라 리소스 ID가 확실히 존재합니다. 그러나 Android에서 일반적인 빌드 시스템 오류는 XML의 순서를 변경 한 후에 이 잘못 일 수 있다는 것입니다. 오류가 ClassCastException이라는 것을 알게 될 것입니다. 해결책 : repo를 정리하고 (예 : ant clean 또는 Eclipse의 일부 버튼/메뉴 사용) 모든 항목을 처음부터 다시 컴파일하십시오.

0

, 나는 보통 이클립스에서 다음 메뉴를 사용하여 해결할 수 : 프로젝트 -> 정리

당신은 안드로이드 프로젝트를 자동으로 생성하는 클래스를 살펴 볼 수 있습니다

0

이 경우 Eclipse는 약간 "너무"똑똑합니다. 모든 레이아웃의 일부인 ID를 찾습니다. setContentView() 레이아웃으로 할당 한 것이 아닙니다.

유효한 ID이지만 레이아웃에 ID가 포함되어 있지 않은 런타임에는 유효하지 않습니다.

+0

이 문제는 aapt와 javac 사이에 발생하며 setContentView()에 올바른 레이아웃이 제공되는 경우에도 충돌이 발생합니다. –