마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

프로그램상 AVD에서는 정상작동 하는데 APK 추출 후 실기 설치 후 오류발생 관련

0 추천
반갑습니다.

제목처럼, 안드로이드 스튜디오 프로그램에서 제공하는 AVD에서는 TEST 시 정상 작동하는 것을 확인하고

Build로 APK를 만들어서 실기에 (pocophone X3) 설치 후 실행을 하니 TextView의 et_id2와 er_id3이

출력되지 않습니다.

보통 이런경우엔 어떤 문제가 있어서 충돌이 발생하는 걸까요?

 

소스는 다음과 같습니다.

 

 

<<activity_mail.XML>>

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/et_id"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="0"
        android:textSize="40dp"/>

    <TextView
        android:id="@+id/et_id2"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="1"
        android:textSize="40dp"/>

    <TextView
        android:id="@+id/et_id3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="2"
        android:textSize="30dp"/>

</LinearLayout>

 

 

 

<<MainActivity.java>>

package com.example.hsjclass;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

    TextView et_id;
    TextView et_id2;
    TextView et_id3;

    @Override
    protected void onCreate( Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_id = findViewById(R.id.et_id);
        et_id2 = findViewById(R.id.et_id2);
        et_id3 = findViewById(R.id.et_id3);

        long now = System.currentTimeMillis(); // 1970년 1월 1일부터 몇 밀리세컨드가 지났는지를 반환함
        Date date = new Date(now);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd"+" ");//형식 지정
        String getTime1 = simpleDateFormat.format(date);
        simpleDateFormat = new SimpleDateFormat("MM");//형식 지정
        String getTime2 = simpleDateFormat.format(date);
        simpleDateFormat = new SimpleDateFormat("E");//형식 지정
        String getTime3 = simpleDateFormat.format(date);
        et_id.setText(getTime1+getTime3);

        switch (getTime3) {
            case "Mon":
                et_id2.setText("월요일");
                et_id3.setText("영어 1시 40분~2시 30분 \n 과학 3시 ~ 4시");
                break;
            case "Tue":
                et_id2.setText("화요일");
                et_id3.setText("방과후 수업이 없어요~^^/");
                break;
            case "Wed":
                et_id2.setText("수요일");
                et_id3.setText("영어 1시 40분~2시 30분 \n 줄넘기 3시 ~ 4시");
                break;
            case "Thu":
                et_id2.setText("목요일");
                et_id3.setText("뮤지컬 2시 20분~3시 20분");
                break;
            case "Fri":
                et_id2.setText("금요일");
                et_id3.setText("영어 1시 40분~2시 30분");
                break;
            case "Sat":
                et_id2.setText("토요일");
                et_id3.setText("쉬는날이에요 ^^/");
                break;
            case "Sun":
                et_id2.setText("일요일");
                et_id3.setText("쉬는날이에요 ^^/");
                break;

        }

 

    }
};
우라에누스 (290 포인트) 님이 2022년 3월 24일 질문
우라에누스님이 2022년 3월 24일 수정

1개의 답변

+1 추천
 
채택된 답변
폰에 설치하신 API를 어떻게 빌드했고, build.gradle 의 세팅이 어떻게 되어 있는지가 중요할 것 같습니다. 만약 release  빌드를 한것이면 obfuscation 이 되기 때문에 proguard 설정을 빼먹게 되면 앱이 크래시되거나 다르게 동작하는 경우가 생길 수 있습니다.
spark (227,530 포인트) 님이 2022년 3월 24일 답변
우라에누스님이 2022년 3월 24일 채택됨
말씀 주신대로, 코딩 자체의 문제가 아니라 뭔가의 설정 문제일 수 있다고 가정하고, 신규 프로젝트 작성 뒤 코드만 복붙했더니 정상 작동 합니다 ㅎㅎ 감사합니다~!
...