저는 내 dotnet webservice에서 데이터를 가져 와서 json 형식으로 결과를 내 안드로이드 응용 프로그램에 전달하려고했습니다. json 데이터는 invokeJSONWS
을 호출하여 doInBackground
함수 (재정의 됨)에서 검색됩니다. 이것은 내가 publishProgress
메서드를 호출하려고 할 때 오류가 발생합니다. json 데이터를 publishProgress
메서드에 전달해야합니다. 반환 형식이 문자열 []이므로 publishProgress
을 재정의해야합니다.AsyncTask를 확장하는 클래스에서 오류가 발생했습니다.
private class ChartTask extends AsyncTask< String,Void, Void>{
// Generates dummy data in a non-ui thread
@Override
protected Void doInBackground(String... params) {
int i = 0;
invokeJSONWS(params[0],"PopulateCities");
return null;
try{
do{
String [] values = new String[2];
Random r = new Random();
int visits = r.nextInt(27);
values[0] = Integer.toString(i);
values[1] = Integer.toString(visits);
publishProgress(values);
//Error here:The method publishProgress(Void...) in the type AsyncTask<String,Void,Void> is not applicable for the arguments (String[])
Thread.sleep(1000);
i++;
}while(i<=30);
}catch(Exception e){ }
return null;
}
// Plotting generated data in the graph
@Override
protected void onProgressUpdate(String[] values) {
visitsSeries.add(Integer.parseInt(values[0]), Integer.parseInt(values[1]));
mChart.repaint();
}
//error here:The method onProgressUpdate(String[]) of type MainActivity.ChartTask must override or implement a supertype method
}
//Method which invoke web methods
public void invokeJSONWS(String country, String methName) {
// Create request
SoapObject request = new SoapObject(NAMESPACE, methName);
// Property which holds input parameters
PropertyInfo paramPI = new PropertyInfo();
// Set Name
paramPI.setName("country");
// Set Value
paramPI.setValue(country);
// Set dataType
paramPI.setType(String.class);
// Add the property to request object
request.addProperty(paramPI);
// Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
// Set output SOAP object
envelope.setOutputSoapObject(request);
// Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
// Invole web service
androidHttpTransport.call(SOAP_ACTION+methName, envelope);
// Get the response
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
// Assign it to static variable
responseJSON = response.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
은이 문제에 밖으로 방법이 있나요? 미리 감사드립니다 !! 당신이 Void
진행 상황을 촬영했기 때문에
는 로그 캣 대신 당신이 String
진전을 기대로 String
을 할 필요가있어,이
04-18 05:55:24.680: W/dalvikvm(1324): VFY: unable to resolve new-instance 430 (Lcom/google/gson/Gson;) in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;
04-18 05:55:24.680: D/dalvikvm(1324): VFY: replacing opcode 0x22 at 0x000f
04-18 05:55:24.820: E/dalvikvm(1324): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method in.wptrafficanalyzer.achartenginedynamicchart.MainActivity.invokeJSONWS
04-18 05:55:24.820: W/dalvikvm(1324): VFY: unable to resolve new-instance 584 (Lorg/ksoap2/serialization/SoapObject;) in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;
04-18 05:55:24.850: D/dalvikvm(1324): VFY: replacing opcode 0x22 at 0x0000
04-18 05:55:24.850: D/dalvikvm(1324): DexOpt: unable to opt direct call 0x0c0f at 0x11 in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;.<init>
04-18 05:55:24.860: D/dalvikvm(1324): DexOpt: unable to opt direct call 0x0fd1 at 0x04 in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;.invokeJSONWS
04-18 05:55:24.860: D/dalvikvm(1324): DexOpt: unable to opt direct call 0x0fcd at 0x09 in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;.invokeJSONWS
04-18 05:55:24.860: D/dalvikvm(1324): DexOpt: unable to opt direct call 0x0fd4 at 0x20 in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;.invokeJSONWS
04-18 05:55:24.860: D/dalvikvm(1324): DexOpt: unable to opt direct call 0x0fd7 at 0x2d in Lin/wptrafficanalyzer/achartenginedynamicchart/MainActivity;.invokeJSONWS
04-18 05:55:24.890: D/AndroidRuntime(1324): Shutting down VM
04-18 05:55:24.900: W/dalvikvm(1324): threadid=1: thread exiting with uncaught exception (group=0xb2ac5ba8)
04-18 05:55:24.920: E/AndroidRuntime(1324): FATAL EXCEPTION: main
04-18 05:55:24.920: E/AndroidRuntime(1324): Process: in.wptrafficanalyzer.achartenginedynamicchart, PID: 1324
04-18 05:55:24.920: E/AndroidRuntime(1324): java.lang.NoClassDefFoundError: com.google.gson.Gson
04-18 05:55:24.920: E/AndroidRuntime(1324): at in.wptrafficanalyzer.achartenginedynamicchart.MainActivity.<init>(MainActivity.java:43)
04-18 05:55:24.920: E/AndroidRuntime(1324): at java.lang.Class.newInstanceImpl(Native Method)
04-18 05:55:24.920: E/AndroidRuntime(1324): at java.lang.Class.newInstance(Class.java:1208)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.os.Handler.dispatchMessage(Handler.java:102)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.os.Looper.loop(Looper.java:136)
04-18 05:55:24.920: E/AndroidRuntime(1324): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-18 05:55:24.920: E/AndroidRuntime(1324): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 05:55:24.920: E/AndroidRuntime(1324): at java.lang.reflect.Method.invoke(Method.java:515)
04-18 05:55:24.920: E/AndroidRuntime(1324): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-18 05:55:24.920: E/AndroidRuntime(1324): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-18 05:55:24.920: E/AndroidRuntime(1324): at dalvik.system.NativeStart.main(Native Method)
04-18 05:55:38.600: I/Process(1324): Sending signal. PID: 1324 SIG: 9
당신의 무효 여기있는이'개인 클래스 ChartTask은 AsyncTask를 확장 <문자열, 무효, 무효> {'의 정수 다음 진행을 입력하면 ChartTask는 AsyncTask {'를 확장합니다. values는 문자열 배열입니다. –
Raghunandan
읽기 asynctask 제네릭 형식 @ http://developer.android.com/reference/android/os/AsyncTask.html – Raghunandan