VerifyError in android test-project build tools v17 - android

Since installing v17 of the android build tools I am getting a VerifyError in my test project.
A short description of my project structure:
All jar files exist in my main projects libs folder
The test-project is a project that resides inside my main project
All Instrumentation tests exist in the same package as my activities.
I have one jar that is only needed for the test projects in my libs folder in the test project
Has anyone seen this? Its happening on all my projects since updating. Running the test produces an InstrumentationException: java.lang.VerifyError

x...#android.com made a temporary fix for an issue I reported: http://code.google.com/p/android/issues/detail?id=27608.
You can try to see if the new anttasks.jar file can fix your problem.
It fixed mine. NoClassDefFoundError when running Instrumentation test with ant

In my case, I have a test project using the library of "robotium".
I'd had the same problem, and soleved by following steps,
"Properties > Java Build Path > Libraries", delete "Android Dependencies" in my test project.
"Properties > Java Build Path > Libraries", delete two robotium jar and click "Add JARs" to re-import robotium jar in my test project.
"Properties > Java Build Path > Order and Export", check two checkbok of robotium jar (and othera you want exported.)
Clean my test project.
I think you also solve the problem, Good Luck!
more information
How to fix the “NoClassDefFoundError” with ADT 17
Dealing with dependencies in Android projects

in my case, first, add robotium-solo-2.5 in properties->build path->Libraries,and then move robotium-solo-2.5.jar to the top in properties->build path->Order and export, finally i solve this funny problem easily...

“Properties > Java Build Path > Order and Export”, and check all the references you want exported.

The way Android deals with dependencies has recently changed. If you are using eclipse, then just remove your jar imports and place them in a "libs"-folder in the project root, and everything will be imported automatically.

Related

NoClassDefFoundError for libs added in Android Lib Project

I have a Android Lib Project which has a number of libraries (jars) added in /lib folder.
Now, I have written a Android Test Project to test the APIs of the Library project and I added the jar of the Lib project inside this test project.
Everything complies fine but when the code, in the Library project executes, which uses the jar file, I am getting a NoClassDefFoundError.
Could someone please help me with this issue?
Please do let me know what other details would be required from my end.
Thanks
Try to Clean Project and Run it again.
Try this way,
Right click on your project --> select Build Path --> go to Order and Export Tab
Check all the libs you added here and done.

"DexException: Multiple dex files define" using Weibo SDK [duplicate]

Since updating to ADT 14 I can no longer build my project. It was building fine prior to updating.
The error:
[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Similar issues have been reported and I have tried the suggestions there including
Restarting Eclipse.
Cleaning the project and rebuild - Disable "Project->Build Automatically" option, then "Clean" and "Build" project, then try to run. reset "Build Automatically" option to On
Re-installing the Android Developer Tools
Re-installing Eclipse (updated to the latest version 3.7.1)
Created a new project importing from the file system
Created a new project from subversion.
I had the same problem, quite weird because it was happening only when using Eclipse (but it was OK with Ant).
This is how I fixed it:
Right click on the Project Name
Select Build Path -> Configure Build Path
In Java Build Path, go to the tab Order and Export
Uncheck your .jar library
Only sometimes:
In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running.
My problem was resolved after cleaning up some directories and files left over from the previous versions of the tools. ADT Rev 14 changes where binaries are stored. I deleted the entire bin directory, restarted Eclipse and cleaned the build and forced a rebuild. That seemed to do the trick initially but the problem came back after the next run.
I finally discovered that my bin directory was included in the project build path. I excluded bin from the build path and repeated the steps above. This resolved my problem.
[Solved for me]
Eclipse project properties->Java build path->Order and export
Uncheck Android private libraries.
None of the above helped.
It was a simple problem in the end.
I had a project which uses the FacebookSDK and ViewPagerIndicator as library projects.
All were built on Android API 16 and those two projects used the android support library vX (X not being 16!)
I added an external JAR to both those projects and pointed it to \extras\android\v4...
And also removed the v4 jar I had in their libs folders.
Clean all projects and re-build.
Voilla!
The exact error I was receiving: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter; Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
This problem was happening me, I had an external .jar in my libs folder called gson-2.2.2.jar but for some reason there were two of them, gson-2.2.2.jar and gson-2.2.2.jar(1), I simply deleted the latter and my project built fine again.
Close eclipse.
Delete bin folder inside your project folder.
Start eclipse and clean your project.
Now run and the problem should be gone
As others have mentioned, this occurs when you have multiple copies of the same class in your build path - including bin/ in your classpath is one way to guarantee this problem.
For me, this occurred when I had added android-support-v4.jar to my libs/ folder, and somehow eclipse added a second copy to bin/classes/android-support-v4.jar.
Deleting the extra copy in bin/classes solved the problem - unsure why Eclipse made a copy there.
You can test for this with
grep -r YourOffendingClassName YourApp | grep jar
For me, I just right click on project -> Build path -> configure build path -> Libraries -> remove dependency
after it works.
This error can happen if you have two jars that contains the same class names, e.g. I had two library: jsr311-api-1.1.1.jar, and jersey-core-1.17.1.jar, both containing the class javax.ws.rs.ApplicationPath. I removed jsr311-api-1.1.1.jar and it worked fine.
I was getting this error after adding the facebooksdk.jar to a project that already had dependencies on the android-support-v4.jar. Since the facebooksdk.jar already includes its own android-support-v4.jar there were conflicts. Removing the earlier android-support-v4.jar from the projects Properties / Java Build Path / Libraries resolved the issue for me.
Go to Project/properties and Java Build Path and unchecked the Android Private Libraries.
Done
I removed Android dependencies from build path and it worked.
Edit: ignore that. I had same jar in my maven dependencies and libs folder. I removed the one at the lib folder.
You have probably installed r14, this error may have been caused due to the platform tools update, you have to re-install your sdk
For me this problem only exists as long as there are Android library projects involved in my project. So when I remove all the libraries and do as you said I can run my app again.
If there are libraries involved even the bin-removal-trick trick won' work.
I don't get why this bug first appeared today since I'm using ADT 14 for several days now. Well there were other bugs that kept me happy though.
Deleting the bin folder was not enough, I also deleted the gen folder. Then after two rebuilds the dex error message was gone.
Select the project in Project Explorer, right-click and select Properties -> Java Build Path -> Source -> Check the box for Allow output folders for source folders
I was basically facing the same issue.
I deleted the BIN folder, then removed unused jar files for Order and Import from eclipse.
IT WORKED after that
I'm late to this party, but adding my own experience so I can find it again later :)
I ran into this problem after upgrading the android sdk and eclipse ad-ins. No upgrade goes unpunished!
The problem for me was related to library projects, my app references both standard java projects and android library projects. I noticed the Java Build Path settings were including the android library projects src and res folders in the Source list (upvotes to everyone that mention bin in source being issue, src and res was also an issue.)
So the solution was:
Remove all referenced Android libraries source and project references from the Java Build Path section of the settings in both Source list and Project list
Make sure pure java dependencies are listed in Project list, and Checked in the Order and Export tab so the classes are included in the apk
Make sure all Android library dependencies are listed on the Android section of project properties, in the library section below the checked SDK versions.
It was along way to piece all that together from the other solutions! Phew!
I ran into this when I upgraded from adt 14 to 15 and to get it to work I ended up just deleting the .eclipse folder (along with my settings) and re-installing the adt 15.
After reading Terrys response about deleting the bin directory and Larrys about the the location of the ANT directory:
I moved the files located in my projects BIN directory to the BIN/CLASSES and im up and running.
Edit 1
Then failed on second run...doh
Edit 2
So closed Eclipse moved files back to original location and its all working... um what?
I don't pretend to know why this worked. Will update if any changes.
Edit 3
I have noted from my backups that there were indeed duplicate files in the BIN directory and BIN/CLASSES.
So the answer is: don't have files in both locations. At least for me that's what worked.
Modify your eclipse.ini file and set the maximum memory parameter to
-Xmx1024m
Then restart your computer.
It worked for me.
found a solution i believe??
[2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;
Where it says : "Lcom/coremedia/iso/AbstractBoxParser$1" that just happen to be the location of the library I imported that was causing the issue. Looked for com.codemedia.iso.AbstractBoxParser$1.class and .AbstractBoxParser.class.... took that jar, unpackaged it, removed both of those files, then repackaged as a .zip, added to library, cleaned and worked! no more conflict for me! (also no updates or additional downloads)
I had two different versions of Cordova .jar-files in my libs folder, I deleted the one I wasn't even using and it worked right away.
Weird because I didn't notice that before and it worked before and then suddenly stopped working...
The ADT R14 update changes where the classes go to the bin/classes directory (see http://tools.android.com/recent/buildchangesinrevision14). If you are using ANT, you should change the path for your classes from bin to bin/classes. This worked for me.
Solution for me:
BACK UP YOUR CODE!
Navigate to your project workspace (not your project) and run the following commands:
dev1:workspace$ cd ~/Documents/workspace/.metadata/.plugins/
dev1:workspace$ rm -rf org.eclipse.core.resources
Navigate to your Eclipse directory and type this command:
dev1:eclipse$ ./eclipse clear
Eclipse will start with an empty workspace - don't worry your projects are still there.
Simple create new project from existing resource and things should be gravy.
The exact error I was receiving:
[2012-02-07 14:15:53 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
[2012-02-07 14:15:53 - ProjectCloud] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
I have several library projects with the same package name specified in the AndroidManifest (so no duplicate field names are generated by R.java). I had to remove any permissions and activities from the AndroidManifest.xml for all library projects to remove the error so Manifest.java wasn't created multiple times. Hopefully this can help someone.
After trying all the other suggestions with no luck, I deleted all the contents of my projects 'bin' directory, then ran eclipse again and it worked.
I converted a non-library project to a library project, but it had a previously built jar file in the libs folder. Removing this jar file caused this error to go away.
I was facing the same issue then i saw while pushing my app some jar files which were loaded twice hence multiple dex error .Just go to your project properties -> Java Build Path and try unchecking jar which is being loaded twice.
[Solved for me]
by removing the duplicate library "JAR file" then remove BuildConfig.java file, Clean project and its work.

Unable to execute dex: Multiple dex files define in Android [duplicate]

Since updating to ADT 14 I can no longer build my project. It was building fine prior to updating.
The error:
[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Similar issues have been reported and I have tried the suggestions there including
Restarting Eclipse.
Cleaning the project and rebuild - Disable "Project->Build Automatically" option, then "Clean" and "Build" project, then try to run. reset "Build Automatically" option to On
Re-installing the Android Developer Tools
Re-installing Eclipse (updated to the latest version 3.7.1)
Created a new project importing from the file system
Created a new project from subversion.
I had the same problem, quite weird because it was happening only when using Eclipse (but it was OK with Ant).
This is how I fixed it:
Right click on the Project Name
Select Build Path -> Configure Build Path
In Java Build Path, go to the tab Order and Export
Uncheck your .jar library
Only sometimes:
In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running.
My problem was resolved after cleaning up some directories and files left over from the previous versions of the tools. ADT Rev 14 changes where binaries are stored. I deleted the entire bin directory, restarted Eclipse and cleaned the build and forced a rebuild. That seemed to do the trick initially but the problem came back after the next run.
I finally discovered that my bin directory was included in the project build path. I excluded bin from the build path and repeated the steps above. This resolved my problem.
[Solved for me]
Eclipse project properties->Java build path->Order and export
Uncheck Android private libraries.
None of the above helped.
It was a simple problem in the end.
I had a project which uses the FacebookSDK and ViewPagerIndicator as library projects.
All were built on Android API 16 and those two projects used the android support library vX (X not being 16!)
I added an external JAR to both those projects and pointed it to \extras\android\v4...
And also removed the v4 jar I had in their libs folders.
Clean all projects and re-build.
Voilla!
The exact error I was receiving: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter; Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
This problem was happening me, I had an external .jar in my libs folder called gson-2.2.2.jar but for some reason there were two of them, gson-2.2.2.jar and gson-2.2.2.jar(1), I simply deleted the latter and my project built fine again.
Close eclipse.
Delete bin folder inside your project folder.
Start eclipse and clean your project.
Now run and the problem should be gone
As others have mentioned, this occurs when you have multiple copies of the same class in your build path - including bin/ in your classpath is one way to guarantee this problem.
For me, this occurred when I had added android-support-v4.jar to my libs/ folder, and somehow eclipse added a second copy to bin/classes/android-support-v4.jar.
Deleting the extra copy in bin/classes solved the problem - unsure why Eclipse made a copy there.
You can test for this with
grep -r YourOffendingClassName YourApp | grep jar
For me, I just right click on project -> Build path -> configure build path -> Libraries -> remove dependency
after it works.
This error can happen if you have two jars that contains the same class names, e.g. I had two library: jsr311-api-1.1.1.jar, and jersey-core-1.17.1.jar, both containing the class javax.ws.rs.ApplicationPath. I removed jsr311-api-1.1.1.jar and it worked fine.
I was getting this error after adding the facebooksdk.jar to a project that already had dependencies on the android-support-v4.jar. Since the facebooksdk.jar already includes its own android-support-v4.jar there were conflicts. Removing the earlier android-support-v4.jar from the projects Properties / Java Build Path / Libraries resolved the issue for me.
Go to Project/properties and Java Build Path and unchecked the Android Private Libraries.
Done
I removed Android dependencies from build path and it worked.
Edit: ignore that. I had same jar in my maven dependencies and libs folder. I removed the one at the lib folder.
You have probably installed r14, this error may have been caused due to the platform tools update, you have to re-install your sdk
For me this problem only exists as long as there are Android library projects involved in my project. So when I remove all the libraries and do as you said I can run my app again.
If there are libraries involved even the bin-removal-trick trick won' work.
I don't get why this bug first appeared today since I'm using ADT 14 for several days now. Well there were other bugs that kept me happy though.
Deleting the bin folder was not enough, I also deleted the gen folder. Then after two rebuilds the dex error message was gone.
Select the project in Project Explorer, right-click and select Properties -> Java Build Path -> Source -> Check the box for Allow output folders for source folders
I was basically facing the same issue.
I deleted the BIN folder, then removed unused jar files for Order and Import from eclipse.
IT WORKED after that
I'm late to this party, but adding my own experience so I can find it again later :)
I ran into this problem after upgrading the android sdk and eclipse ad-ins. No upgrade goes unpunished!
The problem for me was related to library projects, my app references both standard java projects and android library projects. I noticed the Java Build Path settings were including the android library projects src and res folders in the Source list (upvotes to everyone that mention bin in source being issue, src and res was also an issue.)
So the solution was:
Remove all referenced Android libraries source and project references from the Java Build Path section of the settings in both Source list and Project list
Make sure pure java dependencies are listed in Project list, and Checked in the Order and Export tab so the classes are included in the apk
Make sure all Android library dependencies are listed on the Android section of project properties, in the library section below the checked SDK versions.
It was along way to piece all that together from the other solutions! Phew!
I ran into this when I upgraded from adt 14 to 15 and to get it to work I ended up just deleting the .eclipse folder (along with my settings) and re-installing the adt 15.
After reading Terrys response about deleting the bin directory and Larrys about the the location of the ANT directory:
I moved the files located in my projects BIN directory to the BIN/CLASSES and im up and running.
Edit 1
Then failed on second run...doh
Edit 2
So closed Eclipse moved files back to original location and its all working... um what?
I don't pretend to know why this worked. Will update if any changes.
Edit 3
I have noted from my backups that there were indeed duplicate files in the BIN directory and BIN/CLASSES.
So the answer is: don't have files in both locations. At least for me that's what worked.
Modify your eclipse.ini file and set the maximum memory parameter to
-Xmx1024m
Then restart your computer.
It worked for me.
found a solution i believe??
[2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;
Where it says : "Lcom/coremedia/iso/AbstractBoxParser$1" that just happen to be the location of the library I imported that was causing the issue. Looked for com.codemedia.iso.AbstractBoxParser$1.class and .AbstractBoxParser.class.... took that jar, unpackaged it, removed both of those files, then repackaged as a .zip, added to library, cleaned and worked! no more conflict for me! (also no updates or additional downloads)
I had two different versions of Cordova .jar-files in my libs folder, I deleted the one I wasn't even using and it worked right away.
Weird because I didn't notice that before and it worked before and then suddenly stopped working...
The ADT R14 update changes where the classes go to the bin/classes directory (see http://tools.android.com/recent/buildchangesinrevision14). If you are using ANT, you should change the path for your classes from bin to bin/classes. This worked for me.
Solution for me:
BACK UP YOUR CODE!
Navigate to your project workspace (not your project) and run the following commands:
dev1:workspace$ cd ~/Documents/workspace/.metadata/.plugins/
dev1:workspace$ rm -rf org.eclipse.core.resources
Navigate to your Eclipse directory and type this command:
dev1:eclipse$ ./eclipse clear
Eclipse will start with an empty workspace - don't worry your projects are still there.
Simple create new project from existing resource and things should be gravy.
The exact error I was receiving:
[2012-02-07 14:15:53 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
[2012-02-07 14:15:53 - ProjectCloud] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/view/PagerAdapter;
I have several library projects with the same package name specified in the AndroidManifest (so no duplicate field names are generated by R.java). I had to remove any permissions and activities from the AndroidManifest.xml for all library projects to remove the error so Manifest.java wasn't created multiple times. Hopefully this can help someone.
After trying all the other suggestions with no luck, I deleted all the contents of my projects 'bin' directory, then ran eclipse again and it worked.
I converted a non-library project to a library project, but it had a previously built jar file in the libs folder. Removing this jar file caused this error to go away.
I was facing the same issue then i saw while pushing my app some jar files which were loaded twice hence multiple dex error .Just go to your project properties -> Java Build Path and try unchecking jar which is being loaded twice.
[Solved for me]
by removing the duplicate library "JAR file" then remove BuildConfig.java file, Clean project and its work.

Android Studio The project is already registered

I've a big problem with Android Studio.
I have a project that depends on two other projects (as libs).
I followed the guide Problems importing project into Android Studio regarding ActionBarSherlock for import external modules.
I opened "Project Structure", imported the module, but after that I can't see it in the Modules area.
The Modules area contains only the root module, seems it is not refreshed (this is strange). So if I try to add the module as a Dependency, Android Studio doesn't find any module!
Then, if I try to re-import the module, it says that the module/project is already registered!!
Maybe I'm missing something, but I don't know what....! I have this problem both on Windows and MacOSX.
Thanks in advance,
Federico
Look around in your .idea directory for mentions of the problematic project. I had the same problem and resolved it by deleting the entry from .idea/sbt.xml.
In ij go to menu: View -> Tool Windows-> Gradle
Right click on the problematic module and click Refresh External Project, You should see the module in project explorer.
I had a similar problem with ABS and other library imports. The 'Project Structure' interface just wouldn't show the modules. On trying to import the modules, it would prompt, "The project is already registered". Seems to be an IntelliJ/Android Studio issue. Invalidate Caches option didn't help.
Reimporting the project after some cleanup did work for me.
As a precaution, take a backup of your project and store it safely
Ensure that your project builds via gradle command-line and you have all required dependencies specified in respective build.gradle files. Try building with: gradle clean && gradle build
Close the project in Android Studio (or close Android Studio)
Delete .iml files and .idea folders from all modules and the main project
Start Android Studio and reimport the project (Import project from external model > Gradle)
you should remove the project from respective gradle/sbt/maven/ant tab (used to be on right vertical line of Android Studio/Intellij IDEA)
See this answer: https://stackoverflow.com/a/30442195/907576
My issue was fixed when I restart IDEA.

Conversion to Dalvik format failed with error 1 :- No solution works

I am adding admob external jar in my project and i am using andengine as a library project but when i try to export the project i get this error. Also adding andengine library project adds andengine.jar also in android dependencies. Is that suppose to happen?
I have tried almost all other answers on stackoverflow but nothing seems to work.
If anyone can help me pls?
Following is my project image
Just solved this problem. I updated my sdk to latest and that solved the problem!
Try exit eclipse, backup if you want, delete gen and bin folders. Start eclipse again, build then export.
This usually happens to me after either eclipse has been running for a long time or after I have build a signed apk successfully. To fix it I just restart eclipse.
In Eclipse, select the project causing the error- go to the menu project -> properties -> java build path -> libraries and remove all jars including the android jars.
Then, right click the project, go to android tools -> fix project properties. Then, add back any other external jars you wanted to add to the build path following the same menu project -> properties -> java build path -> libraries. To ensure there are no errors due to missing libraries.
Then, do a 'clean' on menu project and build again. It should work.

Categories

Resources