error: failed linking file resources. Cannot find view objects
error: failed linking file resources. Cannot find view objects
我将我的视图对象与 xml 文件连接起来。但是当我尝试编译时,“错误:链接文件资源失败。
" ~ = findIdByView(R.id.~);"
中,R为红色。但我认为我做得很好。我不知道该如何解决。
场景
我正在尝试在 MainActivity 中创建 2 个 LinearLayouts。
(一个用于 WebView,另一个用于 textView。)
我使用 textView 为布局应用了一些动画效果。
activity_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>
MainActivity.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_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>
问题应该出在索引上。
清理你的项目。
转到 android 工作室中的构建 -> 清理项目。
如果它还存在。
转到文件 -> 使缓存无效/重新启动
这是因为您在 translate_top.xml
中使用了不正确的属性 android:reapeatCount
。应该是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>
我将我的视图对象与 xml 文件连接起来。但是当我尝试编译时,“错误:链接文件资源失败。
" ~ = findIdByView(R.id.~);"
中,R为红色。但我认为我做得很好。我不知道该如何解决。
场景
我正在尝试在 MainActivity 中创建 2 个 LinearLayouts。 (一个用于 WebView,另一个用于 textView。) 我使用 textView 为布局应用了一些动画效果。
activity_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>
MainActivity.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_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>
问题应该出在索引上。
清理你的项目。
转到 android 工作室中的构建 -> 清理项目。
如果它还存在。
转到文件 -> 使缓存无效/重新启动
这是因为您在 translate_top.xml
中使用了不正确的属性 android:reapeatCount
。应该是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>