代码之家  ›  专栏  ›  技术社区  ›  Jung Jaehoon

错误:链接文件资源失败。找不到视图对象

  •  0
  • Jung Jaehoon  · 技术社区  · 6 年前

    我用xml文件连接了视图对象。但当我尝试编译时,“错误:链接文件资源失败。 在里面 " ~ = findIdByView(R.id.~);" ,R用红色表示。但我认为我做得很好。我不知道怎么才能解决它。

    脚本

    我正在尝试在MainActivity中创建2个LinearLayouts。 (一个用于WebView,另一个用于textView。) 我使用textView对布局应用了一些动画效果。

    activity\u main。xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout
        android:id="@+id/background"
        android:layout_width="match_parent"
        android:layout_height="459dp"
        android:layout_gravity="bottom|center_horizontal"
        android:orientation="vertical">
    
        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    
    
    <LinearLayout
        android:id="@+id/page"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="top"
        android:visibility="gone">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="tab"/>
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|center_horizontal">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Open"
            android:onClick="onButton1Clicked"/>
    </LinearLayout>
    </FrameLayout>
    

    主要活动。JAVA

        package com.tistory.jaehoonx2.doitmission_08;
    
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.view.View;
        import android.view.animation.Animation;
        import android.view.animation.AnimationUtils;
        import android.widget.Button;
        import android.widget.LinearLayout;
    
    public class MainActivity extends AppCompatActivity {
    
    boolean isPageOpen = false;
    
    Animation translateTopAnim;
    Animation translateBottomAnim;
    
    LinearLayout page;
    Button button;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        page = (LinearLayout) findViewById(R.id.page);    // Every "R" in onCreate() is colored red....
    
        translateTopAnim = AnimationUtils.loadAnimation(this, R.anim.translate_top);
        translateBottomAnim = AnimationUtils.loadAnimation(this, R.anim.translate_bottom);
    
        SlidingPageAnimationListener animListener = new SlidingPageAnimationListener();
        translateTopAnim.setAnimationListener(animListener);
        translateBottomAnim.setAnimationListener(animListener);
    }
    
    public void onButton1Clicked(View v){
        if(isPageOpen) {
            page.startAnimation(translateTopAnim);
        } else {
            page.setVisibility(View.VISIBLE);
            page.startAnimation(translateBottomAnim);
        }
    }
    
    
    private class SlidingPageAnimationListener implements Animation.AnimationListener {
    
        @Override
        public void onAnimationStart(Animation animation) {}
    
        @Override
        public void onAnimationEnd(Animation animation) {
            if(isPageOpen) {
                page.setVisibility(View.INVISIBLE);
    
                button.setText("Open");
                isPageOpen = false;
            } else {
                button.setText("Close");
                isPageOpen = true;
            }
        }
    
        @Override
        public void onAnimationRepeat(Animation animation) {}
    }
    
    }
    

    translate_top.xml (translate\u bottom.xml除了一些数字外几乎相同):

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0%p"
        android:toYDelta="100%p"
        android:duration="500"
        android:reapeatCount="0"
        android:fillAfter="true"
        />
    </set>
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Sujith Royal    6 年前

    问题应该出在索引上。

    清理项目。

    转到生成->清理android studio中的项目。

    如果它仍然存在。

    转到文件->使缓存无效/重新启动

        2
  •  0
  •   ישו אוהב אותך Mahavir    6 年前

    这是因为您使用的属性不正确 android:reapeatCount 在您的 translate_top.xml .应该是 android:repeatCount .所以,你需要修复它,然后改成这样:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0%p"
        android:toYDelta="100%p"
        android:duration="500"
        android:repeatCount="0"
        android:fillAfter="true"
        />
    </set>