Server Http Android

0

MyHTTPD.java

package com.example.dddd;
import java.util.Map;
import fi.iki.elonen.NanoHTTPD;
public class MyHTTPD extends NanoHTTPD {
          public MyHTTPD() {
                super(8080);
            }

            @Override public Response serve(IHTTPSession session) {
                Method method = session.getMethod();
                String uri = session.getUri();
                System.out.println(method + " '" + uri + "' ");
                String msg = "<html><body><h1>Hello server</h1>\n";
                Map<String, String> parms = session.getParms();
                if (parms.get("username") == null)
                    msg +=
                            "<form action='?' method='get'>\n" +
                                    "  <p>Your name: <input type='text' name='username'></p>\n" +
                                    "</form>\n";
                else
                    msg += "<p>Hello, " + parms.get("username") + "!</p>";

                msg += "</body></html>\n";

                return new NanoHTTPD.Response(msg);
            }
      }

MainActive.java

@SuppressWarnings("deprecation")
public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		 addButtonClickListner();
	}
	
    public void addButtonClickListner()
    {
        Button btnNavigator = (Button)findViewById(R.id.button1);
        btnNavigator.setOnClickListener(new OnClickListener(){
            public void onClick(View arg)
            {                   	
     	MyHTTPD server = new MyHTTPD();
                try {
					server.start();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
          
        });
    } 
	@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;
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

Po skompilowaniu, uruchomieniu aplikacji i wciśnięciu przycisku ona się automatycznie zamyka.
Nie wiem, jak rozwiązać ten problem, czy mógłby ktoś pomóc ?

0

Może dodaj jeszcze LogCat to będziemy mogli powiedzieć więcej.

0

07-26 15:48:02.782: I/art(1619): Ignoring second debugger -- accepting and dropping
07-26 15:48:02.812: D/ContextHelper(1619): convertTheme. context->name=com.example.dddd themeResourceId=2131427621
07-26 15:48:02.822: I/PhoneWindow(1619): [generateLayout] setColorNavigationBar => color=0x ff000001
07-26 15:48:02.832: D/PhoneWindowEx(1619): [PWEx][generateLayout] setNavigationBarColor2 : colors=0xff000000
07-26 15:48:02.832: I/PhoneWindow(1619): [setNavigationBarColor2] color=0x ff000000
07-26 15:48:02.992: I/art(1619): Rejecting re-init on previously-failed class java.lang.Class<com.example.dddd.MyHTTPD>
07-26 15:48:03.002: I/art(1619): Rejecting re-init on previously-failed class java.lang.Class<com.example.dddd.MyHTTPD>
07-26 15:48:03.022: I/Activity(1619): Activity.onPostResume() called
07-26 15:48:03.032: D/OpenGLRenderer(1619): Render dirty regions requested: true
07-26 15:48:03.042: I/Adreno-EGL(1619): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: ()
07-26 15:48:03.042: I/Adreno-EGL(1619): OpenGL ES Shader Compiler Version: E031.25.03.00
07-26 15:48:03.042: I/Adreno-EGL(1619): Build Date: 04/14/15 Tue
07-26 15:48:03.042: I/Adreno-EGL(1619): Local Branch: LA.BF.1.1.2_RB1-AU017-20150302-1163306-1163307-1163308-1163309-1235443
07-26 15:48:03.042: I/Adreno-EGL(1619): Remote Branch:
07-26 15:48:03.042: I/Adreno-EGL(1619): Local Patches:
07-26 15:48:03.042: I/Adreno-EGL(1619): Reconstruct Branch:
07-26 15:48:03.042: I/OpenGLRenderer(1619): Initialized EGL, version 1.4
07-26 15:48:03.062: D/OpenGLRenderer(1619): Enabling debug mode 0
07-26 15:48:03.072: D/Atlas(1619): Validating map...
07-26 15:48:03.352: I/Timeline(1619): Timeline: Activity_idle id: android.os.BinderProxy@193702c7 time:3736215
07-26 15:48:11.012: I/ViewRootImpl(1619): ViewRoot's Touch Event : ACTION_DOWN
07-26 15:48:11.142: I/ViewRootImpl(1619): ViewRoot's Touch Event : ACTION_UP
07-26 15:48:11.152: I/art(1619): Rejecting re-init on previously-failed class java.lang.Class<com.example.dddd.MyHTTPD>
07-26 15:48:11.152: D/AndroidRuntime(1619): Shutting down VM
07-26 15:48:11.152: E/AndroidRuntime(1619): FATAL EXCEPTION: main
07-26 15:48:11.152: E/AndroidRuntime(1619): Process: com.example.dddd, PID: 1619
07-26 15:48:11.152: E/AndroidRuntime(1619): java.lang.NoClassDefFoundError: com.example.dddd.MyHTTPD
07-26 15:48:11.152: E/AndroidRuntime(1619): at com.example.dddd.MainActivity$1.onClick(MainActivity.java:31)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.view.View.performClick(View.java:4764)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.view.View$PerformClick.run(View.java:19844)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.os.Handler.handleCallback(Handler.java:739)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.os.Handler.dispatchMessage(Handler.java:95)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.os.Looper.loop(Looper.java:135)
07-26 15:48:11.152: E/AndroidRuntime(1619): at android.app.ActivityThread.main(ActivityThread.java:5376)
07-26 15:48:11.152: E/AndroidRuntime(1619): at java.lang.reflect.Method.invoke(Native Method)
07-26 15:48:11.152: E/AndroidRuntime(1619): at java.lang.reflect.Method.invoke(Method.java:372)
07-26 15:48:11.152: E/AndroidRuntime(1619): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
07-26 15:48:11.152: E/AndroidRuntime(1619): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

0

Jak rozumiem na początku kompilator wrzucił klasę do "śmieci" a teraz nie chce jej z stamtąd wyciągnąć i wywala wyjątek?

0

Nie może jej załadować, bo nie może znaleźć takiej klasy

0

To jak mam rozwiązać ten problem ?

1

No ja do Twojego IDE nie zaglądnę. Posprawdzaj czy wszystko jest widoczne, czy masz odpowiednie pliki do NanoHTTPD i tak dalej i tak dalej.

0

Działa, Java building Path pozmieniałem kolejności!

0

dziękuję panryz

1 użytkowników online, w tym zalogowanych: 0, gości: 1