#xml

yj23124yj23124· 3년

질문안드로이드 뷰가 inflate 되지 않습니다.

layout(.xml) 파일에서 몇 가지 수정하는데 애뮬레이터나 핸드폰 연결해서 적용해봤는데 변경사항이 저장이 안됐습니다. 그래서 다른 코드가 잘못됐나? 하고 지우고 지우다 그냥 딱 기본 코드만 남겨놓고 변경했는데도 여전히 변화가 없습니다.   사진으로 보면 무슨 말인지 확실히 알 수 있습니다. 왼쪽은 제가 원하는 결과물이고 오른쪽은 애뮬레이터에 표시되는 화면입니다.    그리고 왼쪽과 같이 layout(.xml)파일을 수정하고 애뮬레이터 terminate 시키고 다시 실행시킨게 오른쪽 사진입니다.  동작을 안합니다..   class EditProfileActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit_profile) } } 위의 코드는 해당 코틀린 코드입니다. 가장 기본적인 코드만 남겼는데도 위와 같이 문제가 일어납니다.   해당 파일을 지우고 다시 만드는 방법도 있겠지만, 이 layout 말고도 다른 곳에서도 위와 같은 문제가 발생해서 가능하다면 이유를 알아서 삭제하지 않고 해결하고 싶습니다. 왜 이런 문제가 발생하는지 아시는 분 계실까요?
1.5K
2
1
0
무린
무린·2022-05-18
안드로이드 스튜디오에서 File> Invalid cache/Restart > Invalidate and Restart 를 실행해보시기 바랍니다.
사용자 프로필· 4년

질문Android Studio에서 Navigation Drawer하려는 과정에서 문제가 있습니다!

Toolbar의 햄버거 버튼을 누르면 메뉴가 나오는 Navigation Drawer를 만들기 위해 activity_main.xml의 NavigationView 태그를 주석처리하면 아래의 사진처럼 실행은 됩니다. 그러나 주석처리를 없애면 바로 튕겨버립니다.. activity_main.xml의 NavigationView 태그 위치가 문제인 것 같아서 이리저리 바꿔보았지만, 같은 이유로 계속 강제 종료 되었습니다. 해결방법을 찾고 싶습니다!      Logcat: E/AndroidRuntime: FATAL EXCEPTION: main     Process: com.example.myapplication, PID: 17929     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #10 in com.example.myapplication:layout/activity_main: Binary XML file line #10 in com.example.myapplication:layout/activity_main: Error inflating class com.google.android.material.navigation.NavigationView         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)         at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)         at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)         at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)         at android.os.Handler.dispatchMessage(Handler.java:107)         at android.os.Looper.loop(Looper.java:214)         at android.app.ActivityThread.main(ActivityThread.java:7356)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)      Caused by: android.view.InflateException: Binary XML file line #10 in com.example.myapplication:layout/activity_main: Binary XML file line #10 in com.example.myapplication:layout/activity_main: Error inflating class com.google.android.material.navigation.NavigationView      Caused by: android.view.InflateException: Binary XML file line #10 in com.example.myapplication:layout/activity_main: Error inflating class com.google.android.material.navigation.NavigationView      Caused by: java.lang.reflect.InvocationTargetException         at java.lang.reflect.Constructor.newInstance0(Native Method)         at java.lang.reflect.Constructor.newInstance(Constructor.java:343)         at android.view.LayoutInflater.createView(LayoutInflater.java:854)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)         at android.view.LayoutInflater.inflate(LayoutInflater.java:682)         at android.view.LayoutInflater.inflate(LayoutInflater.java:534)         at android.view.LayoutInflater.inflate(LayoutInflater.java:481)         at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)         at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)         at com.example.myapplication.MainActivity.onCreate(MainActivity.java:50)         at android.app.Activity.performCreate(Activity.java:7802)         at android.app.Activity.performCreate(Activity.java:7791)         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)         at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)         at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)         at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)         at android.os.Handler.dispatchMessage(Handler.java:107)         at android.os.Looper.loop(Looper.java:214)         at android.app.ActivityThread.main(ActivityThread.java:7356)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) E/AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #27 in com.example.myapplication:layout/nav_header_main: Binary XML file line #27 in com.example.myapplication:layout/nav_header_main: Error inflating class TextView     Caused by: android.view.InflateException: Binary XML file line #27 in com.example.myapplication:layout/nav_header_main: Error inflating class TextView     Caused by: java.lang.UnsupportedOperationException: Can&#39;t convert value at index 2 to dimension: type=0x1         at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:786)         at android.widget.TextView.readTextAppearance(TextView.java:3971)         at android.widget.TextView.<init>(TextView.java:1064)         at android.widget.TextView.<init>(TextView.java:968)         at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:100)         at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:93)         at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:88)         at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:83)         at com.google.android.material.theme.MaterialComponentsViewInflater.createTextView(MaterialComponentsViewInflater.java:61)         at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:115)         at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1551)         at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1602)         at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1061)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)         at android.view.LayoutInflater.inflate(LayoutInflater.java:682)         at android.view.LayoutInflater.inflate(LayoutInflater.java:534)         at com.google.android.material.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:222)         at com.google.android.material.navigation.NavigationView.inflateHeaderView(NavigationView.java:387)         at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:241)         at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:122)         at java.lang.reflect.Constructor.newInstance0(Native Method)         at java.lang.reflect.Constructor.newInstance(Constructor.java:343)         at android.view.LayoutInflater.createView(LayoutInflater.java:854)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)         at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)         at android.view.LayoutInflater.inflate(LayoutInflater.java:682)         at android.view.LayoutInflater.inflate(LayoutInflater.java:534)         at android.view.LayoutInflater.inflate(LayoutInflater.java:481)         at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)         at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)         at com.example.myapplication.MainActivity.onCreate(MainActivity.java:50)         at android.app.Activity.performCreate(Activity.java:7802)         at android.app.Activity.performCreate(Activity.java:7791)         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)         at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)         at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)         at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)         at android.os.Handler.dispatchMessage(Handler.java:107)         at android.os.Looper.loop(Looper.java:214)         at android.app.ActivityThread.main(ActivityThread.java:7356)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)    MainActivity.java:    public class MainActivity extends AppCompatActivity {     // 툴바     private Toolbar toolbar;     private DrawerLayout drawerLayout;     private NavigationView navigationView;     // 가운데     private ViewPager2 viewPager2;     private DotsIndicator dotsIndicator;     private ArrayList<DataPage> list;     // 바텀네비게이션뷰     private BottomNavigationView bottomNav;     private FragmentManager fragmentManager = getSupportFragmentManager();     private SearchPage fragmentSearch = new SearchPage();     private HomePage fragmentHome = new HomePage();     private CafePage fragmentCafe = new CafePage();     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         // 바텀네비게이션         bottomNav = findViewById(R.id.navigationView);         bottomNav.setOnNavigationItemSelectedListener(new ItemSelectedListener());         this.InitializeLayout(); // 툴바         this.viewpage(); // 뷰페이저         //FragmentTransaction transaction = fragmentManager.beginTransaction();         //transaction.replace(R.id.frameLayout, fragmentSearch).commitAllowingStateLoss();         // 바텀네비게이션     }     //툴바     private void InitializeLayout() {         //toolBar를 통해 App Bar 생성         toolbar = findViewById(R.id.toolbar);         drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);         //navigationView = (NavigationView) findViewById(R.id.nav_view);         setSupportActionBar(toolbar);         ActionBar actionBar = getSupportActionBar();         actionBar.setDisplayShowTitleEnabled(false); // 기존 title 지우기         actionBar.setDisplayHomeAsUpEnabled(true);  // 왼쪽 버튼 사용 여부 true         actionBar.setHomeAsUpIndicator(R.drawable.ic_reorder_white_24dp);  // 왼쪽 버튼 이미지 설정     // 툴바 오른쪽 버튼     @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.menu, menu);         return true;     }     //추가된 소스, ToolBar에 추가된 항목의 select 이벤트를 처리하는 함수     @Override     public boolean onOptionsItemSelected(MenuItem item) {         //return super.onOptionsItemSelected(item);         int id = item.getItemId();         switch (id) {             case android.R.id.home:                 drawerLayout.openDrawer(GravityCompat.START);                 Toast.makeText(getApplicationContext(), "메뉴 버튼 클릭됨", Toast.LENGTH_LONG).show();                 return true;         }         return super.onOptionsItemSelected(item);     }     private void viewpage(){         list = new ArrayList<>();         list.add(new DataPage(R.drawable.sample_1, "Starbucks", 4900));         list.add(new DataPage(R.drawable.sample_2, "Twosome Place", 4100));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         list.add(new DataPage(R.drawable.sample_3, "EDIYA", 3000));         viewPager2 = findViewById(R.id.viewPager2);         viewPager2.setAdapter(new ViewPagerAdapter(list));         dotsIndicator = findViewById(R.id.dots_indicator);         dotsIndicator.setViewPager2(viewPager2);     }     //바텀네비     class ItemSelectedListener implements BottomNavigationView.OnNavigationItemSelectedListener {         @Override         public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {             FragmentTransaction transaction = fragmentManager.beginTransaction();             switch (menuItem.getItemId()) {                 case R.id.searchItem:                     transaction.replace(R.id.frameLayout, fragmentSearch).commitAllowingStateLoss();                     break;                 case R.id.homeItem:                     transaction.replace(R.id.frameLayout, fragmentHome).commitAllowingStateLoss();                     break;                 case R.id.cafeItem:                     transaction.replace(R.id.frameLayout, fragmentCafe).commitAllowingStateLoss();                     break;             }             return true;         }     } } activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:fitsSystemWindows="false"     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- @@@@@이 부분만 추가하면 이러한 에러 발생 @@@@@@-->     <com.google.android.material.navigation.NavigationView         android:id="@+id/nav_view"         android:layout_width="200dp"         android:layout_height="match_parent"         android:layout_gravity="start"         android:background="@drawable/side_nav_bar_white"         android:fitsSystemWindows="false"         app:headerLayout="@layout/nav_header_main"         app:menu="@menu/activity_main_drawer"         app:itemTextAppearance="@style/text_size">     </com.google.android.material.navigation.NavigationView> <!-- @@@@@이 부분만 추가하면 이러한 에러 발생 @@@@@@--> <LinearLayout 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"     android:orientation="vertical"     android:background="@color/cfb"     tools:context=".MainActivity">     <androidx.appcompat.widget.Toolbar         android:id="@+id/toolbar"         android:layout_width="match_parent"         android:layout_height="?attr/actionBarSize"         android:background="?attr/colorPrimary"         android:elevation="4dp"         android:theme="@style/ThemeOverlay.AppCompat.Dark">         <TextView             android:id="@+id/toolbar_title"             android:text="@string/app_name"             android:textSize="25sp"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="center"/>     </androidx.appcompat.widget.Toolbar>     <FrameLayout         android:id="@+id/content_layout"         android:layout_width="match_parent"         android:layout_height="0dp"         android:layout_weight="1" >         <androidx.constraintlayout.widget.ConstraintLayout             android:id="@+id/linearLayout"             android:layout_width="match_parent"             android:layout_height="500dp"             android:layout_marginTop="100dp"             android:background="@color/cfb"             tools:context=".MainActivity">             <TextView                 android:id="@+id/TitleText2"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:text="@string/title2"                 android:textColor="#000000"                 android:textSize="30sp"                 android:textStyle="bold"                 android:layout_marginBottom="10dp"                 app:layout_constraintBottom_toTopOf="@+id/viewPager2"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintStart_toStartOf="parent" />             <ImageButton                 android:id="@+id/refreshButton"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_marginStart="30dp"                 android:layout_marginLeft="30dp"                 android:layout_marginBottom="20dp"                 android:background="@color/cfb"                 app:layout_constraintBottom_toTopOf="@+id/viewPager2"                 app:layout_constraintStart_toEndOf="@+id/TitleText2"                 app:srcCompat="@drawable/refresh_111075__2_" />             <TextView                 android:id="@+id/refreshText"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:text="@string/refresh"                 android:textColor="#000000"                 android:textSize="18sp"                 android:layout_marginStart="20dp"                 android:layout_marginLeft="20dp"                 app:layout_constraintStart_toEndOf="@+id/TitleText2"/>             <ImageButton                 android:id="@+id/filterButton"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_marginTop="0dp"                 android:layout_marginBottom="10dp"                 android:layout_marginEnd="15dp"                 android:layout_marginRight="28dp"                 android:background="@color/cfb"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintBottom_toTopOf="@+id/dots_indicator"                 app:srcCompat="@drawable/filter"                  />             <TextView                 android:id="@+id/filterText"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_marginEnd="25dp"                 android:layout_marginRight="40dp"                 android:text="@string/filter"                 android:textColor="#000000"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintTop_toBottomOf="@+id/filterButton" />             <androidx.viewpager2.widget.ViewPager2                 android:id="@+id/viewPager2"                 android:layout_width="270dp"                 android:layout_height="270dp"                 android:layout_marginBottom="130dp"                 android:orientation="horizontal"                 app:layout_constraintBottom_toBottomOf="parent"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintHorizontal_bias="0.5"                 app:layout_constraintStart_toStartOf="parent"                 app:layout_constraintVertical_bias="0.3" />             <com.tbuonomo.viewpagerdotsindicator.DotsIndicator                 android:id="@+id/dots_indicator"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_marginTop="110dp"                 app:dotsColor="@color/white"                 app:dotsCornerRadius="8dp"                 app:dotsSize="14dp"                 app:dotsSpacing="4dp"                 app:dotsWidthFactor="2.5"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintHorizontal_bias="0.498"                 app:layout_constraintStart_toStartOf="parent"                 app:layout_constraintTop_toBottomOf="@id/viewPager2"                 app:layout_constraintBottom_toBottomOf="parent"                 app:progressMode="true"                 app:selectedDotColor="@color/black" />             <ImageView                 android:layout_width="90dp"                 android:layout_height="90dp"                 android:layout_marginStart="10dp"                 android:layout_marginLeft="10dp"                 android:layout_marginTop="70dp"                 android:clickable="true"                 app:srcCompat="@drawable/cafebot" />         </androidx.constraintlayout.widget.ConstraintLayout>         <androidx.constraintlayout.widget.ConstraintLayout             android:layout_width="match_parent"             android:layout_height="match_parent"             tools:context=".MainActivity">             <FrameLayout                 android:id="@+id/frameLayout"                 android:layout_width="match_parent"                 android:layout_height="0dp"                 app:layout_constraintBottom_toTopOf="@id/navigationView"                 app:layout_constraintLeft_toLeftOf="parent"                 app:layout_constraintRight_toRightOf="parent"                 app:layout_constraintTop_toTopOf="parent"/>             <com.google.android.material.bottomnavigation.BottomNavigationView                 android:id="@+id/navigationView"                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:background="?android:attr/windowBackground"                 app:layout_constraintBottom_toBottomOf="parent"                 app:layout_constraintLeft_toLeftOf="parent"                 app:layout_constraintRight_toLeftOf="parent"                 app:menu="@menu/bottom_nav" />         </androidx.constraintlayout.widget.ConstraintLayout>     </FrameLayout> </LinearLayout> </androidx.drawerlayout.widget.DrawerLayout>  
726
0