"앱이 설치 되지 않습니다." 해결 방법



안드로이드 프로그램을 개발 후 APK를 만들어 핸드폰에 설치 할 때 "앱이 설치 되지 않습니다." 라는 문구가 발생 할 수 있다. 이런 문제가 발생시 어떻게 해결 해야 될지 하나씩 짚어보도록 하겠다.


해결 방법



[STEP 1]

안드로이드 스튜디오에서 clean 후 빌드 한다.

1. Build -> Clean Project

2. Build -> Make Project


[STEP 2]

핸드폰에 동일한 패키지로 설치된 프로그램을 삭제 한다.


[STEP 3]

signature version이 잘 못 된 경우 확인

안드로이드 스튜디오 2.3 이상에서 apk를 만들 때 아래 그림과 같이 V1, V2를 체크 할 수 있다.

핸드폰 OS가 7.0 미만이면 V1을 체크해야 되며 그 이상인 경우는 V2를 체크해야 된다. 

잘모르겠으면 두 개다 체크 해서 apk 파일을 만든다.







반응형

파일 읽고 쓰기 사용법



java 프로그램을 할 때 파일을 읽고 쓰는법을 설명하겠습니다. 


파일 쓰고 읽기 전체 예제



[전체 예제]

import java.io.*;


public class File {

final static String FILE_NAME = "test.txt";

public static void main(String[] args ) {

//=====================//

//========파일 쓰기=======//

//=====================//

FileWriter fw = null ;

BufferedWriter bw = null;

try{

//파일 쓰기

fw = new FileWriter( FILE_NAME );

bw = new BufferedWriter( fw );

bw.write("Hello World"); //버퍼에 데이터 입력

bw.newLine(); //버퍼에 개행 삽입

bw.write("Welcome to java");

bw.newLine();

bw.flush(); //버퍼의 내용을 파일에 쓰기

}catch ( IOException e ) {

System.out.println(e);

}finally{

try { fw.close(); } catch ( IOException e ) {}

try { bw.close(); } catch ( IOException e ) {}

}

//=====================//

//========파일 읽기=======//

//=====================//

FileReader rw = null ;

BufferedReader br = null;

try{

//파일 읽기

rw = new FileReader( FILE_NAME );

br = new BufferedReader( rw );


//파일을 한줄 씩 읽기

String readLine = null ;

while( ( readLine =  br.readLine()) != null ){

    System.out.println(readLine);

}

}catch ( IOException e ) {

System.out.println(e);

}finally{

try { rw.close(); } catch ( IOException e ) {}

try { br.close(); } catch ( IOException e ) {}

}

}

}


[실행 결과]

Hello World

Welcome to java


[메모장으로 파일 열었을 때]

eclipse에서 실행 하면 bin 폴더 상위에 파일이 생성 됩니다.

Hello World

Welcome to java



파일을 쓰는 방법



[import 목록]

import java.io.*;

java.io 패키지에 있는 모든 클래스를 import 합니다.


[파일 쓰는 예제]

//=====================//

//========파일 쓰기=======//

//=====================//

FileWriter fw = null ;

BufferedWriter bw = null;

try{

//파일 쓰기

fw = new FileWriter( "test.txt" );

bw = new BufferedWriter( fw );

bw.write("Hello World"); //버퍼에 데이터 입력

bw.newLine(); //버퍼에 개행 삽입

bw.write("Welcome to java");

bw.newLine();

bw.flush(); //버퍼의 내용을 파일에 쓰기

}catch ( IOException e ) {

System.out.println(e);

}finally{

try { fw.close(); } catch ( IOException e ) {}

try { bw.close(); } catch ( IOException e ) {}

}


[파일 쓰기 준비 동작]

FileWriter fw = null ;

BufferedWriter bw = null;

try{

fw = new FileWriter( "test.txt" ); <- 생성할 파일 명을 넣어 줍니다. <- eclipse에서 실행 하면 bin 폴더 상위에 파일이 생성 됩니다.

bw = new BufferedWriter( fw );  <- 파일을 쓸 때는 버퍼를 이용한다.

...


[버퍼에 파일 쓰기]

bw.write("Hello World"); //버퍼에 데이터 입력

bw.newLine(); //버퍼에 개행 삽입


[버퍼에 있는 내용 파일에 쓰기]

bw.flush(); //버퍼의 내용을 파일에 쓰기


파일을 읽는 방법



[import 목록]

import java.io.*;

java.io 패키지에 있는 모든 클래스를 import 합니다.


[파일 읽는 예제]

//=====================//

//========파일 읽기=======//

//=====================//

FileReader rw = null ;

BufferedReader br = null;

try{

//파일 읽기

rw = new FileReader( FILE_NAME );

br = new BufferedReader( rw );


//파일을 한줄 씩 읽기

String readLine = null ;

while( ( readLine =  br.readLine()) != null ){

    System.out.println(readLine);

}

}catch ( IOException e ) {

System.out.println(e);

}finally{

try { rw.close(); } catch ( IOException e ) {}

try { br.close(); } catch ( IOException e ) {}

}


[파일 읽기 준비 동작]

FileReader rw = null ;

BufferedReader br = null;

try{

//파일 읽기

rw = new FileReader( "text.txt"); <- 앞에서 파일을 생성했기 때문에 해당 파일이 존재 함

br = new BufferedReader( rw ); <- 버퍼를 이용해서 파일을 읽는다.

...


[버퍼를 이용한 파일읽기]

String readLine = null ;

while( ( readLine =  br.readLine()) != null ){  //버퍼 기능인 한줄 씩 읽기 함수를 이용해 파일 내용을 읽어 출력한다.

    System.out.println(readLine);

}



반응형

'프로그램 > Java' 카테고리의 다른 글

[java] NIO를 이용한 파일 쓰고 읽기  (0) 2018.06.05
[java] ByteBuffer 사용법  (0) 2018.06.03
[java] 스레드 사용법  (0) 2018.05.27
[java] 함수 가변 인자 사용 방법  (0) 2018.05.25
[java] Random 사용법  (0) 2018.05.24

자바 Thread 사용법



Thread(스레드)를 이해하기 위해서는 우선 프로세스를 알아야 한다. 프로세스는 하나의 프로그램이라고 보면 된다. 우리는 윈도우에서 음악을 들으며 웹서핑을 할 수 있다. 음악을 플레이 하는 프로그램도 있고 웹서핑을 할 수 있도록 브라우져 프로그램을 실행한다. 이 둘은 각각의 프로세스이다.

윈도우는 멀티프로세스 기반 OS이며 각각의 두 프로그램을 적절한 CPU 분배로 마치 동시에 실행 되는 것과 같다. 스레드는 하나의 프로세스 안에 독립적으로 수행되는 흐름이라고 보면된다. OS 안에 여러 프로세스가 존재하듯이 프로세스 안에는 1개 이상의 스레드가 존재하며 각각의 독립적 기능을 한다.


스레스 사용 방법



자바에스 스레드를 사용하는 방법은 2가지로 나눌 수 있다.

Thread 클래스나 Runnable 인터페이스를 상속 받아 사용할 수 있다.

아래 예제는 상속 받는 방법과 스레드를 생성하는 방법에 대한 예제가 있다.

각각 사용 방법이 다르니 주의해서 보도록 한다.


[Thread를 상속 받은 스레드 클래스]

public class MyThread extends Thread {

@Override

public void run() {

System.out.println("Thread 상속");

}

public static void main(String[] args) {

Thread mt = new MyThread();

mt.start();

}

}


[상속 방법]

public class MyThread extends Thread // Thread 클래스를 상속 받기 때문에 extends 를 사용한다.


[사용 방법]

Thread mt = new MyThread(); 

mt.start(); // 스레드를 시작하는 함수


[Runnable를 상속 받은 스레드 클래스]

public class MyRunnable implements Runnable{


@Override

public void run() {

System.out.println("Runnable 상속");

}

public static void main(String[] args) {

Thread mr = new Thread(new MyRunnable());

mr.start();

}

}


[상속 방법]

public class MyThread implements Runnable // Runnable 인터페이스를 상속 받기 때문에 implements 를 사용한다.


[사용 방법]

Thread mr = new Thread(new MyRunnable()); // Runnable은 Thread의 자식이 아니기 때문에 바로 생성 할 수 없고 이렇게 Thread 객체 생성시 인자로 넣어준다.

mr.start(); // 스레드를 시작하는 함수




반응형

'프로그램 > Java' 카테고리의 다른 글

[java] ByteBuffer 사용법  (0) 2018.06.03
[java] 파일 읽고,쓰기 사용법  (0) 2018.05.30
[java] 함수 가변 인자 사용 방법  (0) 2018.05.25
[java] Random 사용법  (0) 2018.05.24
[java] sleep 사용법  (0) 2018.05.23

자바 함수 가변 인자 사용 방법



java로 프로그램 작성 중 함수 인자를 여러개 받아야 할 경우가 있다. 예를 들어 System.out.printf 함수 이용시 인자 값이 1개 혹은 2,3.. 이상으로 넣는 것 처럼 말이다. 사용자 함수를 만들 때도 이렇게 인자를 여러개 받는 방법에 대해 알아보도록 하겠다.

 

가변 인자 사용 방법



가변 인자사용예는 아래와 같다. 언제나 예제를 바로 보고 실행 해보는 것이 가장 이해가 빠르다. (복사 붙여넣어 테스트 해보자)


public class factor {

static String conString(String... args) {

      String result = "";

      

      for(String str : args){

           result += str ;

      }

      

      return result;

}

public static void main(String[] args) {

String str1 = "Hello";

String str2 = " World";

String str3 = " Welcome";

String str4 = " !!!";

String result = conString(str1, str2, str3, str4);

System.out.println("result : " + result );

}

}


[가변 인자 함수 만드는 방법]

String conString(String... args); // 인자 부분에 ...을 넣어 가변 인자 사용을 알린다. String 형으로 여러개의 인자를 받을 수 있다.


[가변 인자 함수 사용 방법]

String result = conString(str1, str2, str3, str4 ); // String 형 인자를 4개를 넣었지만 4개가 아닌 1,2...5개등 다양하게 테스트 해봐도 함수는 동작 한다.


반응형

'프로그램 > Java' 카테고리의 다른 글

[java] 파일 읽고,쓰기 사용법  (0) 2018.05.30
[java] 스레드 사용법  (0) 2018.05.27
[java] Random 사용법  (0) 2018.05.24
[java] sleep 사용법  (0) 2018.05.23
[java] printf 와 지시자  (0) 2018.05.22

+ Recent posts