정말 짜증났었다.


ajax를 타고 호출한곳에서 값까지 전부 전송했는데 난데없이


에러...


원인을 찾아보니 json관련 라이브러리 부재


pom.xml에 디펜던시 추가해주고 메이븐업데이트하고 해봤더니


된다.


<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.4.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.1.1</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>



다른블로그들에는 전부 Publish module contexts to separate XML files 체크하고 클린하면 없어진다고 되어 있는데


내 경우에는 그렇게 해도 안되서 ~


다른 방법으로 했다.




이렇게 들어가서 메이븐 추가해주고 클린하니까 됨


자바 빌드 패스 엔트리스 클릭하면 메이븐 나올거임


저 메뉴는 프로젝트 우클릭 프로퍼티스

만약 윈도우>쇼뷰에서 SVN이 찾아도 없다면 그건 설치를 해야되는거다.


이클립스를 처음 깔았으면 당연히 없겠지...


그럴땐...


헬프>마켓플레이스에서 SVN을 치고나면


SVN 프로바이더가 나올것이다. 


그걸 설치하고 나면 이클립스 재시작이 그때 윈도우 > show view를 하면


자동으로 svn kit x.x 버전 설치하라고 나올것이다.




중간에 인증되지 않는거 설치 계속할거냐고 물으면 yes


그거 설치 끝나면 다시 이클립스 재시작된다.


그럼 다시 윈도우>show view 해봐라


그럼나온다

package com.leminity.gcmsampleapp;


import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.util.Log;

import android.widget.Toast;


import com.google.android.gcm.GCMRegistrar;


/**

 * GCM Service 이용을 위한 샘플 프로젝

 * @author Leminity

 *

 */

public class MainActivity extends Activity {

private static final String TAG ="MainActivity";

private static final String PROJECT_ID=""; //Google Cloud Messageing Service PROJECT ID

private Context appContext = null;//applicationContext


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initialize();//변수 초기화

startGCM();//GCM 시작 메소드

}

private void initialize(){

appContext = getApplicationContext();

}

/**

* GCM 서비스를 시작한다.

*/

private void startGCM(){

/**

* GCM Service가 이용 가능한 Device인지 체크한다.

* api 8(Android 2.2) 미만인 경우나 GCMService를 이용할 수 없는

* 디바이스의 경우 오류를 발생시키니 반드시 예외처리하도록 한다.

*/

try {

GCMRegistrar.checkDevice(appContext);

} catch (Exception e) {

// TODO: handle exception

Log.e(TAG, "This device can't use GCM");

return;

}

/**

* 2.SharedPreference에 저장된 RegistrationID가 있는지 확인한다.

* 없는 경우 null이 아닌 ""이 리턴

*/

String regId = GCMRegistrar.getRegistrationId(appContext);

/**

* Registration Id가 없는 경우(어플리케이션 최초 설치로 발급받은 적이 없거나,

* 삭제 후 재설치 등 SharedPreference에 저장된 Registration Id가 없는 경우가 이에 해당한다.)

*/

if(CommonUtils.isEmpty(regId)){

/**

* 3.RegstrationId가 없는 경우 GCM Server로 Regsitration ID를 발급 요청한다.

* 발급 요청된 Registration ID는 SharedPreference에 저장된다.

*/

GCMRegistrar.register(appContext, PROJECT_ID);

//SharedPreference에 저장된 Registration Id가 존재하는 경우

}else{

Toast.makeText(appContext, "Exist Registration Id: " + regId, Toast.LENGTH_LONG).show();

}

}


@Override

protected void onDestroy() {

// TODO Auto-generated method stub

/**

* 4.앱 종료되기 전이나 종료하기 전에 GCMRegistrar.onDestroy를 반드시 호출한다.

* 호출하지 않을 경우 unRegisterReceiver오류가 발생한다.

* 해당 함수는 null이나 기타 오류에 대해 내부적으로 예외 처리하고 있으므로, 아무때나 마음껏 호출해도 된다.

*/

GCMRegistrar.onDestroy(appContext);

super.onDestroy();

}


}



'Android' 카테고리의 다른 글

앱 만들기 (코딩없어도 만들수 있다)  (0) 2020.09.23
GCMIntentService.java 내용 설명(주석)  (0) 2016.06.16

+ Recent posts