Java 在Android studio中扩展AppCompatActivity时出错

Java 在Android studio中扩展AppCompatActivity时出错,java,android,Java,Android,Hello my code发出一个简单的http请求并返回一个json。我的代码工作正常,但当我尝试扩展AppCompatActivity时(因为我想在设备屏幕上显示json),它会给我带来多个错误,我的代码如下所示 package com.vogella.java.library.okhttp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Tex

Hello my code发出一个简单的http请求并返回一个json。我的代码工作正常,但当我尝试扩展AppCompatActivity时(因为我想在设备屏幕上显示json),它会给我带来多个错误,我的代码如下所示

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!!");
    }
}}
package com.vogella.java.library.okhttp;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.widget.TextView;
导入java.io.IOException;
导入com.squareup.okhttp.MediaType;
导入com.squareup.okhttp.OkHttpClient;
导入com.squareup.okhttp.Request;
导入com.squareup.okhttp.RequestBody;
导入com.squareup.okhttp.Response;
导入org.json.JSONException;
导入org.json.JSONObject;
公共类TestMain扩展了AppCompatActivity{
OkHttpClient=新的OkHttpClient();
公共静态最终媒体类型JSON
=MediaType.parse(“application/json;charset=utf-8”);
字符串doPostRequest(字符串url、字符串json)引发IOException{
RequestBody=RequestBody.create(JSON,JSON);
Request Request=newrequest.Builder()
.url(url)
.职位(机构)
.build();
Response=client.newCall(request.execute();
返回响应.body().string();
}
公共静态void main(字符串[]args)抛出IOException、JSONException{
字符串username=“test”;
字符串密码=“123”;
TestMain示例=新的TestMain();
字符串json=“”;
字符串postResponse=example.doPostRequest(“http://86.145.89.53:8080/authentication_service-开发/验证?用户名=“+username+”&password=“+password,json);
int计数器=postResponse.length();
如果(计数器==14){
System.out.println(“您的用户名或密码无效!!”;
}
如果(计数器>1000){
System.out.println(“HTTP状态401–未授权”);
}
如果(计数器<1000&&计数器>14){
System.out.println(“欢迎!!”;
}
}}
错误是:

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)
线程“main”java.lang.RuntimeException中的异常:存根! 在android.content.Context.(Context.java:20) 位于android.content.ContextWrapper.(ContextWrapper.java:21) 在android.view.ContextThemeWrapper.(ContextThemeWrapper.java:21) 在android.app.Activity。(Activity.java:22) 位于android.support.v4.app.SupportActivity。(SupportActivity.java:31) 位于android.support.v4.app.BaseFragmentActivityGingerbread。(BaseFragmentActivityGingerbread.java:37) 位于android.support.v4.app.BaseFragmentActivityHoneycomb。(BaseFragmentActivityHoneycomb.java:29) 在android.support.v4.app.BaseFragmentActivityJB。(BaseFragmentActivityJB.java:30) 在android.support.v4.app.FragmentActivity上。(FragmentActivity.java:79) 位于android.support.v7.app.AppCompatActivity。(AppCompatActivity.java:61) 在com.vogela.java.library.okhttp.TestMain上(TestMain.java:18) 位于com.vogella.java.library.okhttp.TestMain.main(TestMain.java:52) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
您在Android开发中不使用
public static void main
。在活动中,您使用onCreate:

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

移动代码后,删除
publicstaticvoidmain

Android活动必须具有
onCreate()
方法,当您使用
AppCompactAcitvity
扩展任何类时,它必须实现一些方法

更改代码,删除main方法,
addoncreate()
并在那里执行操作

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

看看活动生命周期。

你应该先学习基本的Android。谢谢你的智能提示!!