Android 프로젝트에 IRClib (http://moepii.sourceforge.net/irclib/javadoc/org/schwering/irc/lib/package-summary.html) 을 사용하려고합니다. 프로젝트의 'libs'폴더에 irclib.jar을 추가했습니다. 또한 프로젝트의 '참조 된 라이브러리'섹션에 나타나도록 파일을 라이브러리로 추가했습니다. 또한 Android 매니페스트에 '인터넷 사용'권한을 추가했습니다.Android 프로젝트에서 IRClib을 사용합니다.
다음과 같은 예비 코드가 있습니다.
package com.shaarad.airc;
import java.io.IOException;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.Toast;
import org.schwering.irc.lib.*;
public class MainActivity extends Activity {
EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IRCConnection connection=new IRCConnection("irc.freenode.net",6667,6667,"myircpass","shaarad","shaarad","Shaarad");
try {
connection.connect();
connection.doJoin("#ubuntu");
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "IOE", Toast.LENGTH_SHORT).show();
}
if (connection.isConnected()) {
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_SHORT).show();
}
text=(EditText)findViewById(R.id.editText1);
text.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
USB 디버깅 모드로 장치를 연결하면 언제든지 작동이 잠시 깜박이고 강제 종료됩니다.
06-29 12:50:53.211: E/AndroidRuntime(12023): FATAL EXCEPTION: main
06-29 12:50:53.211: E/AndroidRuntime(12023): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shaarad.airc/com.shaarad.airc.MainActivity}: android.os.NetworkOnMainThreadException
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2065)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2090)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread.access$600(ActivityThread.java:136)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.os.Looper.loop(Looper.java:137)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread.main(ActivityThread.java:4800)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.lang.reflect.Method.invoke(Method.java:511)
06-29 12:50:53.211: E/AndroidRuntime(12023): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
06-29 12:50:53.211: E/AndroidRuntime(12023): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
06-29 12:50:53.211: E/AndroidRuntime(12023): at dalvik.system.NativeStart.main(Native Method)
06-29 12:50:53.211: E/AndroidRuntime(12023): Caused by: android.os.NetworkOnMainThreadException
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.InetAddress.getAllByName(InetAddress.java:214)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.Socket.tryAllAddresses(Socket.java:113)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.Socket.<init>(Socket.java:182)
06-29 12:50:53.211: E/AndroidRuntime(12023): at java.net.Socket.<init>(Socket.java:154)
06-29 12:50:53.211: E/AndroidRuntime(12023): at org.schwering.irc.lib.IRCConnection.connect(IRCConnection.java:295)
06-29 12:50:53.211: E/AndroidRuntime(12023): at com.shaarad.airc.MainActivity.onCreate(MainActivity.java:22)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.Activity.performCreate(Activity.java:5008)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
06-29 12:50:53.211: E/AndroidRuntime(12023): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2029)
06-29 12:50:53.211: E/AndroidRuntime(12023): ... 11 more
ohh .. :(okay..thanks 많은 도움이 되셨습니다! :) – tigerden