빌드가 안되고 Default Activity Not Found 에러가 발생할 경우 IDE 캐시를 삭제해주면 해결된다.

실행 후 안드로이드 스튜디오가 재시작된다.


File > Invalidate Caches/Restart


WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글이 없습니다.
secret

adb : android debug bridge, android sdk에 포함


윈도우에서만 하다가 맥에서 하려니 모르는게 많다. 윈도우의 경우 sdk 설치 후 콘솔에서 바로 사용이 가능하지만, 맥의 경우는 adb실행파일의 경로를 path에 추가해줘야 사용이 가능하다.

path 설정 방법은 다음과 같다.


1. 터미널 실행


2. .bash_profile이 있는지 확인

$ ls -a


3-1. 없으면 생성한다.

$ touch .bash_profile


3-2. 있으면 열어준다.

$ open -e .bash_profile


4. 내용 입력 후  저장 (cmd+s)

export PATH=${PATH}:[SDK가 설치된 절대경로]/tools:${PATH}:[SDK가 설치된 절대경로]/platform-tools
<example>
export PATH=${PATH}:/Users/UserId/library/android/sdk/tools:${PATH}:/Users/UserId/library/android/sdk/platform-tools


5. 적용

$ source ~/.bash_profile


6. 확인

$ adb version


WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글 하나 달렸습니다.
  1. 부족하오니 잘부탁드립니다.
secret

앱 등록

우선 카카오 SDK를 사용하기 위해서 KakaoDevelopers에 개발자 등록이 되어 있어야합니다.

개발자 등록을 하신 후 '내 애플리케이션 > 앱 만들기'로 이동하여 앱 이름을 지정하고 생성합니다.

왼편 메뉴에서 생성된 앱을 선택하고 '설정 > 일반'으로 이동해서 플랫폼 추가 버튼을 클릭하여 Android 플랫폼을 추가한 후 패키지명, 마켓URL(자동 생성)을 입력합니다.

참고로 키해시는 카카오 로그인을 사용하지 않는다면 지금 당장은 등록할 필요가 없습니다. 

카카오 링크는 로그인을 필요로 하지 않습니다.


Gradle 환경설정

Project build.grade

allprojects {
    repositories {
        jcenter()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
    }
}

grade.properties

KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.1.4

Module build.grade

compile group: project.KAKAO_SDK_GROUP, name: 'kakaolink', version: project.KAKAO_SDK_VERSION


관련 키 등록

kaka_string.xml 생성

<!?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 앱 등록시 받은 네이티브 앱 키 -->
    <string name="kaka_app_key">CCCCCCCCCCCCCCCCCCCCCCCCCCCC</string> 
    <!-- "kakao" + 네이티브앱키 -->
    <string name="kakao_sheme">kakaoCCCCCCCCCCCCCCCCCCCCCCCCCCCC</string> 
    <!-- host는 "kakaolink"로 고정된 값을 사용 -->
    <string name="kakaolink_host">kakaolink</string> 
</resources>


AndroidManifest.xml 수정

카카오 링크 기능을 사용할 액티비티의 <intent-filter>에 아래 내용 추가

<data android:scheme="@string/kakao_sheme" android:host="@string/kakaolink_host" />

<application> 내부에 아래 내용 추가

<meta-data android:name="com.kakao.sdk.AppKey"  android:value="@string/kakao_app_key" />


카카오 링크 전체 소스

fragment에서 간단하게 버튼 클릭시 링크를 보내도록 작성했습니다.

이렇게 작성을 하신 후 실행을 한 뒤 버튼을 클릭하면 카카오톡 친구 목록이 뜨고, 거기서 메세지를 보낼 친구를 선택하고 확인 버튼을 누르면 설정된 메세지 "TEST TEXT"가 "GO WEBSITE"버튼과 함께 전송됩니다. 카카오 링크는 해당 폰에 카카오톡이 설치가 되어 있어야지만 이용 가능합니다.

기타 자세한 내용은 개발가이드를 참고하시면 됩니다.

package com.example.fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.example.R;
import com.kakao.kakaolink.KakaoLink;
import com.kakao.kakaolink.KakaoTalkLinkMessageBuilder;
import com.kakao.util.KakaoParameterException;

public class HomeFragment extends Fragment {
    private static final String TAG = HomeFragment.class.getSimpleName();

    View view;

    Button btnKakaoInvite;

    private KakaoLink kakaoLink;
    private KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder;

    private final String imageSrc = "http://developers.kakao.com/images.jpg";
    private final String siteUrl = "http://developers.kakao.com";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_home, container, false);

        btnKakaoInvite = (Button) view.findViewById(R.id.btn_kakao_invite);
        btnKakaoInvite.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    kakaoLink = KakaoLink.getKakaoLink(AppController.getGlobalApplicationContext());
                    kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
                    kakaoTalkLinkMessageBuilder.addText("TEST TEXT");
                    kakaoTalkLinkMessageBuilder.addImage(imageSrc, 300, 200);
                    kakaoTalkLinkMessageBuilder.addWebButton("GO WEBSITE", siteUrl);
                    kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), getActivity());
                } catch (KakaoParameterException e) {
                    Log.d(TAG, e.getMessage());
                }
            }
        });

        return view;
    }
}



WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글이 없습니다.
secret
btnSmsInvite.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.putExtra("address", "number");
        intent.putExtra("sms_body", "sms_test");
        intent.setType("vnd.android-dir/mms-sms");
        startActivity(intent);
    }
});

WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글이 없습니다.
secret
간단하게 String 넘기기

fragment
Bundle args = new Bundle();
args.putString("key", "value");
DialogFragment dialogFragment = new DialogFragment ();
dialogFragment.setArguments(args);
dialogFragment.show(getFragmentManager(), "Sample Dialog Fragment");

dialog fragment
Bundle mArgs = getArguments();
String mValue = mArgs.getString("key");



WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글이 없습니다.
secret
  • 입력방식 (EditText만 사용 가능)
    • android:singleLine 한 라인으로만 표현하며 스크롤 및 개행이 불가함.
    • android:digits 유효 글자 제한.
    • android:numeric 'integer' 숫자, 'signed' 부호, 'decimal' 소수점
    • android:phoneNumber 전화번호.
    • android:password 비밀번호.
    • android:capitalize 'characters' 모두 대문자, 'words' 첫 문자만 대문자, 'sentences' 문장의 첫 글자만 대문자로 표현.
  • 초첨
    • android:selectAllOnFocus 선택 시 전체 선택.
    • android:cursorVisible 'true', 'false' 커서 보기.
  • 편집
    • android:ellipsize 'android:singleLine'에만 적용, 'start' , 'middle', 'end', 'marquee'
    • android:marqueeRepeatLimit 'android:singleLine'에만 적용, 'integer' 기본 3, 'marquee_forever' 무한 반복.
  • 링크
    • android:autoLink 'email', 'map', 'web', 'phone', 'all'
  • 설정
    • android:textStyle 'bold', 'italic', 'bolditalic'
    • android:shadowColor 그림자 색상.
    • android:shadowDx 그림자의 x축 거리.
    • android:shadowDy 그림자의 y축 거리.
    • android:shadowRadius 그림자 크기.
    • android:textScaleX 장평.
    • android:lineSpacingMultiplier 줄 간격 설정.
    • android:lineSpacingExtra 줄 간격 추가 설정.
    • android:lines 라인 설정, android:layout_height="wrap_content"일 경우 자동으로 높이가 강제 설정 됨.
    • android:minLines android:layout_height="wrap_content"일 경우 최소 line 설정.
    • android:maxLines android:layout_height="wrap_content"일 경우 최대 line 설정.
    • android:ems 수평크기를 ems기준으로 함, 글자 수 제한.
    • android:minEms android:layout_height="wrap_content"일 경우 최소 ems 설정.
    • android:maxEms android:layout_height="wrap_content"일 경우 최대 ems 설정.



WRITTEN BY
덜구
시간나면 강아지들 데리고 캠핑도 가고, 셀프 리모델링도 하고 이것 저것 하면서 즐겁게 잘 살고 있습니다 :-)

트랙백  0 , 댓글이 없습니다.
secret