2017-05-21 13 views
0

こんにちは私のコードは単純なhttp要求を行い、jsonを返します。私のコードは正常に動作しますが、私は(私は、デバイスの画面上でJSONを表示したいので)AppCompatActivityを拡張しようとすると、それは私に私のコードを複数のエラーをgavesエラーがあるAndroidスタジオでAppCompatActivityを拡張するとエラーが発生する

package com.vogella.java.library.okhttp; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 
import java.io.IOException; 
import com.squareup.okhttp.MediaType; 
import com.squareup.okhttp.OkHttpClient; 
import com.squareup.okhttp.Request; 
import com.squareup.okhttp.RequestBody; 
import com.squareup.okhttp.Response; 
import org.json.JSONException; 
import org.json.JSONObject; 

public class TestMain extends AppCompatActivity { 


OkHttpClient client = new OkHttpClient(); 

public static final MediaType JSON 
     = MediaType.parse("application/json; charset=utf-8"); 


String doPostRequest(String url, String json) throws IOException { 
    RequestBody body = RequestBody.create(JSON, json); 
    Request request = new Request.Builder() 
      .url(url) 
      .post(body) 
      .build(); 
    Response response = client.newCall(request).execute(); 
    return response.body().string(); 
} 


public static void main(String[] args) throws IOException, JSONException { 

    String username = "test"; 
    String password = "123"; 

    TestMain example = new TestMain(); 
    String json = ""; 
    String postResponse = example.doPostRequest("http://86.145.89.53:8080/authentication_service-dev/authenticate?username=" + username + "&password=" + password, json); 

    int counter = postResponse.length(); 

    if (counter == 14) { 
     System.out.println("Your username or password is invalid!!"); 
    } 
    if (counter > 1000) { 
     System.out.println("HTTP Status 401 – Unauthhorized"); 
    } 
    if (counter < 1000 && counter > 14) { 
     System.out.println("Welcome!!"); 
    } 
}} 

を下回っている:

Exception in thread "main" java.lang.RuntimeException: Stub! 
at android.content.Context.<init>(Context.java:20) 
at android.content.ContextWrapper.<init>(ContextWrapper.java:21) 
at android.view.ContextThemeWrapper.<init>(ContextThemeWrapper.java:21) 
at android.app.Activity.<init>(Activity.java:22) 
at android.support.v4.app.SupportActivity.<init>(SupportActivity.java:31) 
at android.support.v4.app.BaseFragmentActivityGingerbread.<init>(BaseFragmentActivityGingerbread.java:37) 
at android.support.v4.app.BaseFragmentActivityHoneycomb.<init>(BaseFragmentActivityHoneycomb.java:29) 
at android.support.v4.app.BaseFragmentActivityJB.<init>(BaseFragmentActivityJB.java:30) 
at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:79) 
at android.support.v7.app.AppCompatActivity.<init>(AppCompatActivity.java:61) 
at com.vogella.java.library.okhttp.TestMain.<init>(TestMain.java:18) 
at com.vogella.java.library.okhttp.TestMain.main(TestMain.java:52) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
+0

基本的なAndroid Firstを学ぶ必要があります。 –

+0

スマートチップをありがとう! – Kyriakos

答えて

0

Androidデベロッパーでpublic static void mainを使用しないでください。アクティビティでは、使用のonCreate:

@Override 
public void onCreate(Bundle sis){ 
    super.onCreate(sis); 
    //Move the contents of "public static void main" here 
} 

そして、あなたは、コードを移動したときpublic static void mainを削除します。あなたがAppCompactAcitvityで任意のクラスを拡張するとき

0

Androidの活動は、それが、

変更あなたのコードいくつかのメソッドを実装し、add onCreate()をmainメソッドを削除し、そこにものを行う必要があり、onCreate()方法を持っている必要があります。

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_acremote); 
    } 

アクティビティライフサイクルLinkをご覧ください。

関連する問題