페이지

cannot be resolved or is not a field 오류

종종 큰 .java 문에 코드에 이상이 없으나  다음과 같은
xxxx  cannot be resolved or is not a field 오류가 뜰 경우다

1. R.java 의 문제.
- 복사하기 버튼으로 xml 코드를 만들 경우 종종 R.java 에 반영이 되지 못한다.
- 프로젝트를 닫고 다시 불러 오거나 xml 의 id를 다시 직접 타이핑 합니다

프로젝트 명에 빨간 느낌표 오류

프로젝트 명에 빨간색 느낌 코드에는 이상이 없는 데 빨간 느낌표가
있으며 디버그가 진행되지 않는다






계속해서 아래와 같이 에러를 뿜어낸다

이럴 경우 코드내부 문제보다는  
Build Path 경로 잘못이였다. 라이브러리 경로를 변경했던가 등의 문제로 일어나 경고 였다

아래 그림과 같이 오른쪽 마우스 클릭... Build Path  선택 configure Build Path를 열어보면



아래와 같이 잘 못된 라이브러리 등을 찾을 수 있다



Edit를 눌러 경로를 수정하거나 제거하면 빨간 느낌표가 사라진다.

안드로이드 버튼에 그림, 글자 색깔 지정

안드로이드 버튼에 배경으로 그림을 넣고  텍스트 색깔 지정를 넣을 수 있다.

1. 그림 넣는 방법은 텍스트를 기준으로

android:drawableLeft="@android:drawable/ic_dialog_map" 처럼 텍스트 왼쪽에 위치

android:drawableBottom  텍스트 아래
android:drawableRight 텍스트 오른쪽
android:drawableTop 텍스트 위

2. 그림과 텍스트 간격

android:drawablePadding = "10dp"

3. 텍스트 색지정

android:textColor="#ffffff"  흰색을 의미

4. 버튼 색지정
android:background="#212121" 검은회색


5. 그림이 버튼 왼쪽으로 붙어버리는 경우
android:paddingLeft="15dp"

이와 같이 버튼 자체에 패딩을 적용하며 그림을 오른쪽으로 밀어 간격을 벌려준다.


전체 버튼 코드

 <Button
         android:id="@+id/MapButton"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:paddingLeft="15dp"
         android:layout_alignParentBottom="true"
         android:background="#212121"
         android:drawableLeft="@android:drawable/ic_dialog_map"
         android:text="@string/map_show"
         android:textColor="#ffffff" />


안드로이드 아이콘 해상도

안드로이드 아이콘 해상도 크기




아이콘을 자동으로 크기별로 만들어 주는 싸이트



폰트 변경 , 텍스트 글자 바꾸기

앱에서 버튼 텍스트 및 텍스트 글자체 변경가능하다.

네이버 등에서 글꼴을 받아야 한다. 나눔손글씨붓체 폰트를 받았다면  \assets\fonts\ 폴더에 나나눔손글씨붓체 를 저장 NanumBrush.ttf         


버튼내 글자 변경
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/NanumBrush.ttf");
Ha_Button.setTypeface(face);
B_Button.setTypeface(face);
D_Button.setTypeface(face);
B_Button.setTypeface(face);
Text.setTypeface(face);



네이버 나눔 글꼴 공개 무료 글꼴

네이버 오픈 폰트 캡처














글꼴 다운 받기



ZygoteInit$MethodAndArgsCaller.run() 오류

디버깅 중  ZygoteInit$MethodAndArgsCaller 가 종종 발생한다.
대부분 오타이거나 
1. .xml 에 없거나 삭제된 버튼 및 텍스트 등 findViewById 를  java에서 불러오거나 
2. 지정되지 않는 findViewById 가 사용될 경우 발생하나

나 같은 경우는 
새로운 액티비티를 만든 후

AndroidManifest.xml 안에

        <activity
            android:name=".Activity_Homepage"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:label="@string/title_activity_activity__homepage" >
        </activity>

를 추가한다는 것을  종종 잊어버렸다


3. ZygoteInit$MethodAndArgsCaller.run() line:909 일경우

혹시 버튼 클릭에 Button1.setOnClickListener 구문을 사용하고 있다면 

액티비티에 implements OnClickListener 확장을 잊지 않았는 지 살펴본다



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

import android.widget.Button;

public class Activity_Main extends Activity  implements OnClickListener  {

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

위치 정보 체크 여부 , Version 1.2

Bemo : 실버전 3 , 버전 1.2

 아이콘 전면 교체



  • 문제점 : 위치 정보가 꺼졌을 때 Latitude,Longitude 정보값을 던지지 못해 리스트를 작성하지 못하면 오류 발생으로 앱 종료
  • 해결 : 위치정보를 체크하여 다이얼로그 박스를 띄우고 GPS를 활성화 요청


private boolean GPS_Service() {
 
   String gps = android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

   if (!(gps.matches(".*gps.*") && gps.matches(".*network.*"))) {

 
    AlertDialog.Builder GPS_Dialog = new AlertDialog.Builder(this);
    GPS_Dialog.setTitle(getResources().getString(R.string.GPS_Setting));
    GPS_Dialog.setMessage(getResources().getString(R.string.GPS_Fragen));
    GPS_Dialog.setPositiveButton(getResources().getString(R.string.GPS_OK), new DialogInterface.OnClickListener() {
   
     public void onClick(DialogInterface dialog, int which) {

      Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
      intent.addCategory(Intent.CATEGORY_DEFAULT);
      startActivity(intent);
     }
    }).setNegativeButton(getResources().getString(R.string.GPS_NO), new DialogInterface.OnClickListener() {
   
     public void onClick(DialogInterface dialog, int which) {
      return;
     }
   
    }).create().show();
 
    return false;
 
   } else {
   
    return true;
 
   }
}


6월 7일 베모 첫 등록 version 1.0

version 1.0

대상 : Android 5.0.1
대상버전:   android:minSdkVersion="17"
              android:targetSdkVersion="22"
패키지:  package="com.berlin.bermo"

드디어 앱스토어 첫 등록으로 버전은 1.0 으로 기록했다.

향후 업데이트를 위해서는 AndroidManifest.xml 상에 android:versionCode 는 정수로 계속 변경되어야 하나 android:versionName 는 개발자 스스로 설정할수 있다. 앱스토에는 android:versionName 버전으로 기록된다.

앱스토어에서 검색되는 시간은 올린지 4시간 정도 지난 것 같다


  • 문제점 : 시작과 동시에 7인치 태블릿을 가지고 앱스토어를 통해 다운 받았으나 오류 발생으로 다시 삭제후 다시 다운로드로 성공. 그러나 음식점 뷰를 보니 핸드폰 크기에 맞추어 있던 사진들이 전부 중앙으로 나란히 모여있음.
  • 해결 : 기존의 상대적 레이아웃으로 중앙사진 좌우로 배치했던 것을 다시 리니어 레이아웃에 설정후  틀로 감싸고 내부에 상대레이아웃을 각각 다음과 같이 배치한다.

<RelativeLayout  
android:layout_width="0dp" 
android:layout_height="wrap_content"
android:layout_weight="1" > 

이후 상대레이아웃의 중간을 설정하고 그림의 크기를 설정하면 디스플레이어 크기변화에 알아서 적용된다.

android:layout_centerHorizontal="true"
android:layout_centerVertical="true" 

[Kotlin] 안드로이드 내부저장소 캐시에 저장하기

안드로이드 내부에 임시적으로 데이터를 저장하기 위해 캐시에 저장한다. 따로 퍼미션이 필요없고 보안이 필요없는 부분에서 잠시 저장할 때 유리하다 내부적으로 저장소가 부족할때 자동으로 지워질수 있다는 경고 private fun saveCache(d...