Android resource linking failed
There’s no error shown while coding in the XML file but when I debug, it popups an error message saying,"Android resource linking failed". Commenting the horizontal scroll-views makes the error go away but I need to use it. It’s a fragment layout app. Please provide a solution asap!
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.home.HomeFragment">
<LinearLayout
android:id="@+id/l1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@color/black"
android:gravity="center"
android:text="MECHDROID"
android:textColor="@color/white"
android:textSize="28sp"
android:textStyle="bold" />
</LinearLayout>
<RelativeLayout
android:id="@+id/r1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/l1">
<TextView
android:id="@+id/services"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background=""
android:gravity="center"
android:text="Services"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<HorizontalScrollView
android:id="@+id/hsv_services"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/services"
android:background="@color/silver">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal"
android:weightSum="2">
<androidx.cardview.widget.CardView
android:id="@+id/web_dev_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Website Development" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/web_support_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Website Support" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/android_dev_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Android App Development" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/ios_dev_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="iOS App Development" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/dm_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Digital Marketing" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</HorizontalScrollView>
<TextView
android:id="@+id/career"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/hsv_services"
android:layout_margin="10dp"
android:gravity="center"
android:text="Career"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<HorizontalScrollView
android:id="@+id/hsv_career"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/career"
android:background="@color/silver">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal"
android:weightSum="2">
<androidx.cardview.widget.CardView
android:id="@+id/electrician_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Electrician" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/flutter_dev_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Flutter Developer" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/ai_engineer_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="AI Engineer" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/marketing_manager_btn"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_margin="3dp"
app:cardCornerRadius="20dp"
app:cardElevation="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:src="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="Marketing Manager" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
</RelativeLayout>
Java
package com.mechdroid.mechtech.ui.home;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.mechdroid.mechtech.databinding.FragmentHomeBinding;
public class HomeFragment extends Fragment {
private FragmentHomeBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
HomeViewModel homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
binding = FragmentHomeBinding.inflate(inflater, container, false);
View root = binding.getRoot();
return root;
}
}
2
Answers
In your code you have
android:background=""
you have not given any value for background attribute in your<TextView>
whose withandroid:id="@+id/services"
Give some value for background.
Note: Also you can simply your xml code by using
<RecyclerView>
with adapter and item layout. Make layout file for one item only then use recycler view and adapter. To make recycler view horizontal use these two attributes inside recycler viewapp:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:orientation="horizontal"
. Then create an List of items with their values to pass to adapter and adapter will automatically set them. To handle click events you can use interface. So your xml will be simplified a lot. With this you can easily add as many items as you want with your code without making changes to xml.You are referencing the TextView
services
in thehsv_services
HorizontalScrollView as@+id/services
.You need to remove the
+
when referencing other view IDs as the+
is used to note that it is a new resource and should be added to the resources file.More detailed explanation here