2017-04-10 60 views
0

我正在開發一個android應用程序,其中我將圖像轉換爲字節數組並使用kso​​ap2發送它。當我嘗試它時,我收到一個異常,應用程序崩潰。我正在給我的代碼和堆棧跟蹤下面..如果任何人可以幫助我..請幫助。嘗試使用kso​​ap發送字節數組時Android ClassDefFoundError

日誌

java.lang.NoClassDefFoundError: org.kobjects.base64.Base64
at org.ksoap2.serialization.MarshalBase64.writeInstance(MarshalBase64.java:39) at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:653) at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:645) at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:614) at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:598) at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:655) at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:579) at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:192)
at org.ksoap2.transport.Transport.createRequestData(Transport.java:82) at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:79) at com.example.manappuram.punching_maceinn.MainActivity.GetConfirm(MainActivity.java:420) at com.example.manappuram.punching_maceinn.MainActivity$10.onPictureTaken(MainActivity.java:797) at android.hardware.Camera$EventHandler.handleMessage(Camera.java:823) at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)

MainActivity

public void GetConfirm() { 
     String SOAP_ACTION = "http://tempuri.org/cccc"; 
     String METHOD_NAME = "ccccc"; 
     String NAMESPACE = "http://tempuri.org/"; 
     String URL = "http://zxxxx.xx.xx.xx/my_services/ccc.asmx"; 

     try { 

      //Code added by Jocheved on 31/03/2017 
      String photoPath = Environment.getExternalStorageDirectory()+"/JCG Camera/img.jpg"; 

File imagefile = new File(photoPath); 
      FileInputStream fis = null; 
      try { 
       fis = new FileInputStream(imagefile); 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 

       Bitmap bm = BitmapFactory.decodeStream(fis); 
       ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
       bm.compress(Bitmap.CompressFormat.JPEG, 50, baos); 
       byte[] b = baos.toByteArray(); 
       String encImage = Base64.encodeToString(b, Base64.DEFAULT); 

SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); 
      pi1 = new PropertyInfo(); 
      pi1.setName("xcode"); 
      int x = Integer.parseInt(empId.getText().toString().trim()); 
      pi1.setValue(x); 
      pi1.setType(Integer.class); 
      Request.addProperty(pi1); 

      pi2 = new PropertyInfo(); 
      pi2.setName("in_time"); 
      pi2.setValue(shiftTime.getText().toString().trim()); 
      pi2.setType(String.class); 
      Request.addProperty(pi2); 

      pi3 = new PropertyInfo(); 
      pi3.setName("em_id"); 
      pi3.setValue(3531); 
      pi3.setType(Integer.class); 
      Request.addProperty(pi3); 

      pi4 = new PropertyInfo(); 
      pi4.setName("photo_rel"); 
      System.out.println("image convertion string is " + img); 
      pi4.setValue(b);    
      Request.addProperty(pi4); 

      pi5 = new PropertyInfo(); 
      pi5.setName("ipd"); 
      pi5.setValue("10.29.245.85~DT-3501-56070"); 
      pi5.setType(String.class); 
      Request.addProperty(pi5); 


      SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      new MarshalBase64().register(soapEnvelope); 
      soapEnvelope.dotNet = true; 
      soapEnvelope.setOutputSoapObject(Request); 

      HttpTransportSE transport = new HttpTransportSE(URL); 
      transport.debug = true; 
      transport.call(SOAP_ACTION, soapEnvelope); 
      System.out.println("Cannot serialize 1"); 
      try{ 
       SoapObject result=(SoapObject)soapEnvelope.getResponse(); 
       Toast.makeText(MainActivity.this, "Successs", Toast.LENGTH_LONG).show(); 
       if(result!= null){ 
        System.out.println("Resp in confirm click is " + result.toString()); 
        Toast.makeText(MainActivity.this, "Successs", Toast.LENGTH_LONG).show(); 

的build.gradle

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs')  
    compile 'com.android.support:appcompat-v7:22.0.0'  
    compile files('libs/ksoap2-android-2.5.2.jar') 
    compile files('libs/org-apache-commons-codec.jar') 

} 
+0

你不需要2個'編譯文件(...)',因爲'compile fileTree(...)'這樣做。 – azizbekian

+0

所以我需要如何改變它.. – Jocheved

回答

0

看來你不加入ksoup庫properly.that就是爲什麼gradle這個是無法找到它。

能否請您看看這個link

編輯:

不要lib.Try圖書館加入複製粘貼以下行成的build.gradle文件。

compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.0' 
+0

任何人都可以幫助我.. – Jocheved

+0

@Jocheved請檢查編輯的文章 – Steve

相關問題