2017-01-02 5 views
1

Android App funktioniert gut, wenn auf dem Emulator ausgeführt wird, aber es stürzt beim Testen auf einem echten Gerät ab.

Wir haben eine einfache Android-App erstellt, um sich mit einem Soap-Webservice zu verbinden. Es funktioniert gut mit Android Emulator aber stürzt beim Testen mit einem echten Android-Handys ab. Es gibt kein Problem mit der Version, die wir überprüft haben.Android App stürzt beim Testen auf einem echten Gerät ab

Voll logcat Ausgang hat unten angegeben:

$ adb shell am start -n "com.asoftit.loyaltyplus/com.asoftit.loyaltyplus.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
Client not ready yet..Connected to process 22149 on device samsung-gt_s7580-4203ec61e40e7100 
I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts 
W/dalvikvm: VFY: unable to resolve interface method 16143: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V 
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;) 
I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested 
W/dalvikvm: VFY: unable to resolve interface method 16145: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z 
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode 
W/dalvikvm: VFY: unable to resolve interface method 16149: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations 
W/dalvikvm: VFY: unable to resolve virtual method 455: Landroid/content/res/TypedArray;.getChangingConfigurations()I 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 
I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType 
W/dalvikvm: VFY: unable to resolve virtual method 477: Landroid/content/res/TypedArray;.getType (I)I 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0008 
I/dalvikvm: Could not find method android.widget.FrameLayout.startActionModeForChild, referenced from method android.support.v7.widget.ActionBarContainer.startActionModeForChild 
W/dalvikvm: VFY: unable to resolve virtual method 16580: Landroid/widget/FrameLayout;.startActionModeForChild (Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0002 
I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v7.content.res.AppCompatResources.getColorStateList 
W/dalvikvm: VFY: unable to resolve virtual method 269: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList; 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006 
I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable 
W/dalvikvm: VFY: unable to resolve virtual method 418: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 
I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity 
W/dalvikvm: VFY: unable to resolve virtual method 420: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 
E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering 
W/dalvikvm: VFY: unable to resolve instanceof 140 (Landroid/graphics/drawable/RippleDrawable;) in Landroid/support/v7/widget/AppCompatImageHelper; 
D/dalvikvm: VFY: replacing opcode 0x20 at 0x000c 
D/libEGL: loaded /system/lib/egl/libGLES_hawaii.so 

      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      mem_init ++ 


      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      gHwMemAllocator client 3 

      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      **** Using ION allocator **** 


      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      registered SIGUSR1[10] for pid[22149] 

      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      HwMemAllocatorImpl Static Counters 0 0 


      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      HwMemAllocatorImpl[40fd4dcc] totalDeviceAllocSize[0] totalFree[0] maxFree[0] in numSlabs[0] 


      [ 01-02 16:37:16.224 22149:22149 D/   ] 
      mem_init 40fd4dcc-- 
D/ION: config: version(0x10000) secure(0xf000) 256M(0x22d) fast(0x608) hwwr(0x608) 
D/MM_DEVICE: Waiting for mm thread to come up 
D/MM_DEVICE: mm_device_thread starting 
D/HAWAII_EGL: eglCreateContext() config: 18 context: 0x4c48a058, VC context 1, Thread 22149 
D/HAWAII_EGL: Set SWAP INTERVAL 0 
D/HAWAII_EGL: eglCreateWindowSurface() surface: 0x40054928, VC surface: 1, Thread: 22149 
D/HAWAII_EGL: eglMakeCurrent(0x4c48a058, 0x40054928, 0x40054928) Thread: 22149 
D/OpenGLRenderer: Enabling debug mode 0 
D/WritingBuddyImpl: getCurrentWritingBuddyView() 
D/WritingBuddyImpl: getCurrentWritingBuddyView() 
D/WritingBuddyImpl: getCurrentWritingBuddyView() 
E/dalvikvm: Could not find class 'org.kxml2.kdom.Node', referenced from method org.ksoap2.SoapEnvelope.parseBody 
W/dalvikvm: VFY: unable to resolve instanceof 2313 (Lorg/kxml2/kdom/Node;) in Lorg/ksoap2/SoapEnvelope; 
D/dalvikvm: VFY: replacing opcode 0x20 at 0x002f 
E/dalvikvm: Could not find class 'org.kxml2.kdom.Node', referenced from method org.ksoap2.SoapEnvelope.parseHeader 
W/dalvikvm: VFY: unable to resolve new-instance 2313 (Lorg/kxml2/kdom/Node;) in Lorg/ksoap2/SoapEnvelope; 
D/dalvikvm: VFY: replacing opcode 0x22 at 0x0003 
E/dalvikvm: Could not find class 'org.kxml2.kdom.Node', referenced from method org.ksoap2.SoapEnvelope.writeBody 
W/dalvikvm: VFY: unable to resolve check-cast 2313 (Lorg/kxml2/kdom/Node;) in Lorg/ksoap2/SoapEnvelope; 
D/dalvikvm: VFY: replacing opcode 0x1f at 0x000f 
W/dalvikvm: VFY: array-length on non-array 
W/dalvikvm: VFY: rejecting opcode 0x21 at 0x0007 
W/dalvikvm: VFY: rejected Lorg/ksoap2/SoapEnvelope;.writeHeader (Lorg/xmlpull/v1/XmlSerializer;)V 
W/dalvikvm: Verifier rejected class Lorg/ksoap2/SoapEnvelope; 
W/dalvikvm: threadid=11: thread exiting with uncaught exception (group=0x413b9960) 
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
        java.lang.RuntimeException: An error occured while executing doInBackground() 
         at android.os.AsyncTask$3.done(AsyncTask.java:299) 
         at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
         at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
         at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
         at java.lang.Thread.run(Thread.java:856) 
        Caused by: java.lang.VerifyError: org/ksoap2/SoapEnvelope 
         at com.asoftit.loyaltyplus.MainActivity$MyAsyncTask.doInBackground(MainActivity.java:84) 
         at com.asoftit.loyaltyplus.MainActivity$MyAsyncTask.doInBackground(MainActivity.java:53) 
         at android.os.AsyncTask$2.call(AsyncTask.java:287) 
         at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)  
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)  
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)  
         at java.lang.Thread.run(Thread.java:856)  
W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection 
D/HAWAII_EGL: eglMakeCurrent(NULL) Thread: 22149 
D/HAWAII_EGL: eglDestroySurface() surface: 0x40054928, android window 0x512e16c8, Thread: 22149 
D/HAWAII_EGL: eglMakeCurrent(0x4c48a058, 0x512e0dd8, 0x512e0dd8) Thread: 22149 
D/HAWAII_EGL: eglMakeCurrent(NULL) Thread: 22149 
D/HAWAII_EGL: eglMakeCurrent(0x4c48a058, 0x512e0dd8, 0x512e0dd8) Thread: 22149 
D/HAWAII_EGL: eglMakeCurrent(NULL) Thread: 22149 
I/Process: Sending signal. PID: 22149 SIG: 9 
Application terminated. 

Hier ist Haupttätigkeit:

package com.asoftit.loyaltyplus; 

import android.os.AsyncTask; 

import android.os.Handler; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

public class MainActivity extends AppCompatActivity { 

    EditText etPhoneNo; 
    Button btSubmit; 
    TextView tvFirstName; 
    //instantiating handler is important 
    Handler mHandler = new Handler(); 

    public String WSDL_TARGET_NAMESPACE ; 
    public String SOAP_ADDRESS; 
    private SoapObject request; 
    private HttpTransportSE httpTransport; 
    private SoapSerializationEnvelope envelope; 
    Object response; 

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

     etPhoneNo = (EditText)findViewById(R.id.etPhoneNo); 
     btSubmit = (Button)findViewById(R.id.btSubmit); 
     tvFirstName = (TextView)findViewById(R.id.tvFirstName); 
    } 

    public void GetUserDetailsByPhoneNo(View view){ 
     //call async task from here 
     //192.99.4.45 
     String inputPhone = etPhoneNo.getText().toString(); 
     String [] params = new String[]{inputPhone} ; 
     new MyAsyncTask().execute(params); 

    } 

    class MyAsyncTask extends AsyncTask<String,Void,String> 
    { 
     public String SOAP_ACTION = "http://tempuri.org/getUserDetailsByPhoneNo"; 
     public String OPERATION_NAME = "getUserDetailsByPhoneNo"; 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      WSDL_TARGET_NAMESPACE ="http://tempuri.org/"; 
      SOAP_ADDRESS = "http://loyaltywebservice.asoftit.com/AndroidWebService.asmx"; 
      request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME); 

      response = null; 

     } 




     @Override 
     protected String doInBackground(String... params){ 
//   SOAP_ADDRESS = "http://"+params[0]+"/AndroidWebService.asmx"; 


      PropertyInfo pi = new PropertyInfo(); 
      pi.setName("PhoneNo"); 
      pi.setValue(params[0]); 
      pi.setType(String.class); 
      request.addProperty(pi); 
      pi= new PropertyInfo(); 

      envelope= new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.dotNet=true; 
      envelope.setOutputSoapObject(request); 
      httpTransport = new HttpTransportSE(SOAP_ADDRESS); 
      try{ 
       httpTransport.call(SOAP_ACTION, envelope); 
       response = envelope.getResponse(); 

      } 
      catch (Exception exp) 
      { 
       response = exp.getMessage(); 
      } 
      return response.toString(); 
     } 

     @Override 
     protected void onPostExecute(final String result) 
     { 
      //TODO Auto-generated method stub 
      super.onPostExecute(result); 
      mHandler.post(new Runnable() { 
       @Override 
       public void run(){ 
        tvFirstName.setText(result); 
       } 
      }); 
     } 

    } 
} 
+0

Was ist der OS-Version Ihres Emulator und das Gerät, in dem Sie Ihre App lief? – amalBit

+0

Ist Ihr Gerät mit demselben Netzwerk verbunden, mit dem Ihr PC verbunden ist? In einigen Szenarien tritt diese Ausnahme auf, wenn sich Ihr API/Dienst in der Test- oder Bereitstellungsphase befindet und nur vom lokalen Netzwerk aus zugreifbar ist. –

+0

Dies könnte für Sie hilfreich sein. http://stackoverflow.com/questions/14229448/verifyerror-in-web-service-operation-using-soap-only-in-android-4-2 –

Antwort

0

Vielen Dank allen für die support.Finally wir das answer.The Problem war auf ksoap2-Android- gefunden 2.5.2.jar Datei. Früher haben wir diese Datei in lib-Ordner eingefügt, klicken Sie mit der rechten Maustaste und ausgewählte Set als eine Bibliothek aus dem Menü. Das funktionierte gut mit Emulator aber stürzte bei der Verwendung von realen Geräten. Dann löschten wir die JAR-Datei aus dem lib-Ordner und fügten diese zu grandle hinzu.

Repositories { Maven {url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/'}}

als Build-Typ und

Kompilierung 'com.google.code.ksoap2-android: ksoap2-android: 3.6.1'

als Abhängigkeit. Jetzt funktioniert es gut.

0

buildTypes {

release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
    repositories { 
     maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' } 
    } 
} 

}

Abhängigkeiten {

compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 


compile 'com.android.support:appcompat-v7:25.1.0' 
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1' 
testCompile 'junit:junit:4.12' 

}

Verwandte Themen