Omertron / api-thetvdb

API for TheTVDB,com website
GNU General Public License v3.0
29 stars 20 forks source link

VerifyError on searchSeries before android 5.0 #11

Open comidan opened 9 years ago

comidan commented 9 years ago

Sorry to disturb you again. I don't think this problem is related to your APIs but I don't know how to resolve it. When running on android >= 5.0 everything works fine. If I run it in android < 5.0 it'll crash when calling searchSeries (when creating a TheTVDBApi it does not crash) and the exception says : Caused by: java.lang.VerifyError: com/omertron/thetvdbapi/tools/TvdbParser at com.omertron.thetvdbapi.TheTVDBApi.searchSeries(TheTVDBApi.java:362) Do you have any suggestions? The dependencies should be right because it shouldn't work on >=5.0 if it is a dependencies problem. I thank you for your time.

Omertron commented 9 years ago

I noticed that I have an missing dependency for commons-lang3 (it's inherited from api-common), I don't know if that's the issue your are facing, but I have added an explicit dependency now.

Other than that, unless <android 5.0 doesn't have URLEncoder, I don't know what might be the issue

comidan commented 9 years ago

Thank you, I'll try to update my commons-lang3 dependency and I'll let you know. However, do you have an example working before android 5.0?

Omertron commented 9 years ago

Sorry, I don't have any experience in android development (yet)

comidan commented 9 years ago

Hi, I tried but nothing changed. Can I add your library using grandle to make sure it's not a dependencies problem?

Omertron commented 9 years ago

Sure, if there is anything I need to add, please let me know

comidan commented 9 years ago

Ok thank you

comidan commented 9 years ago

Tried but nothing changed. I really do not know why it is only working after android 5.0 . Hope I'll figure out what that VerifyError is before my exam

Omertron commented 9 years ago

Does this happen with any other methods?

comidan commented 9 years ago

I have not tried any other methods yet but it does connect to thetvdb with the given API key. It's just when I call the search method but it could happen in other methods which I have not checked yet.

Omertron commented 9 years ago

Could you check the other methods? I'd like to see if it's something specific to that method or common across methods

comidan commented 9 years ago

Sure, give me a couple of minutes

comidan commented 9 years ago

Checked on other methods such as getAbsoluteEpisode,getWeeklyUpdates,getAllEpisodes,getActors and getSeries and I still get the same exception : java.lang.VerifyError: com/omertron/thetvdbapi/tools/TvdbParser

Omertron commented 9 years ago

I think this may be an issue with the DOMParser. From what I have read there may be some incompatibility between a "full" java implementation and the android API implementation.

I will try and work out what method is called that causes the issue and see if I can work around it.

If you can provide any further stack trace or errors that might locate the issue, that would be great

comidan commented 9 years ago

I really thank you for your time. This is all I got : VFY: unable to resolve exception class 2226 (Ljavax/xml/ws/WebServiceException;) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/dalvikvm﹕ VFY: unable to find exception handler at addr 0xc
05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/dalvikvm﹕ VFY: rejected Lcom/omertron/thetvdbapi/tools/TvdbParser;.getActors (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/dalvikvm﹕ VFY: rejecting opcode 0x0d at 0x000c 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/dalvikvm﹕ VFY: rejected Lcom/omertron/thetvdbapi/tools/TvdbParser;.getActors (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/dalvikvm﹕ Verifier rejected class Lcom/omertron/thetvdbapi/tools/TvdbParser; 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ java.lang.VerifyError: com/omertron/thetvdbapi/tools/TvdbParser 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at com.omertron.thetvdbapi.TheTVDBApi.searchSeries(TheTVDBApi.java:362) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at test.tvdb.dev.com.tvdb_test.SearchFragment$DownloadSeriesData.doInBackground(SearchFragment.java:93) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at test.tvdb.dev.com.tvdb_test.SearchFragment$DownloadSeriesData.doInBackground(SearchFragment.java:77) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 05-04 17:13:11.859 3836-3999/test.tvdb.dev.com.tvdb_test W/System.err﹕ at java.lang.Thread.run(Thread.java:841)

Omertron commented 9 years ago

I am still looking into this. I am creating my own android project to try and find the issue

comidan commented 9 years ago

Ok I really thank you for your time and your effort!