So far, the only way I've been able to debug within Eclipse is to use Treeshaker with Scala IDE's buggy 2.8 branch. If I try to build with Scala IDE without Treeshaker, I get ClassNotFound errors per this long thread on scala-on-android.
Ideally I would build with sbt-android and debug within Eclipse, but I've been unable to do so successfully. The closest to debugging an sbt-android project I was able to achieve was to build the sbt-android project with the android:package-debug command, start the executable with the android:start-emulator command, and then connect DDMS to the application's thread.
However, I had breakpoints set that only would have executed after I connected the debugger to the thread, and none of them caused the thread to stop when reached.
Has anyone been able to debug Scala Android code in Eclipse using any other tools besides Treeshaker with Scala IDE based on Scala 2.8?
UPDATE: I'm successfully debugging (not building) in Eclipse after building from the command line with sbt, sbteclipse, and android-plugin.
What I did was to use Eclipse's new Android project menu, connect to existing source, and point it to the ./src/main directory. Then Eclipse recognized the Android settings, and DDMS recognized the task as belonging to the Eclipse Android project.
I also had to reconfigure the Eclipse project's Java build path source folders by removing the src folder from the build path and adding the ./scala folder. Then I had to restart Eclipse to add breakpoints to the Scala file.
Here's some interesting discussion about the difficulties building and debugging Android applications using Eclipse.
In general debugging Scala code running on Android using Eclipse works well and behaves more or less like debugging Scala on regular (non-Android) applications.
I use sbt with sbt-android and android:start-emulator or android:start-device.
Depending on whether I need to debug the application startup, I set the option to wait for the debugger in the developer settings on the device or emulator. To do this, run "DevTools" / "Development Settings". Select your application and check "Wait for Debugger".
Then you have to select the process to debug in DDMS. Make sure the debug port is shown, and then connect with the Eclipse debugger.
A potential cause for the debugger not installing the breakpoints is that the source code line has no direct equivalent in byte code. For comprehensions come to mind.
Using AndroidProguardScala, I am successful in debugging, using scala 2.10 and Eclipse 3.7
It also deals with for comprehensions as the usual plugin.
See the detailed answer there:
Eclipse, Android, Scala made easy but still does not work
The only missing feature is the new scala debugger in the latest scala eclipse plugin, which is not yet integrated. So for example, to debug a map, you will have to go though files such as Map.scala, ArrayBuffer.scala, Object.scala, and so on.
Related
For the past week, I have been struggling to figure out how to run a Qt quick application with the Android kit. I have encountered numerous errors. Earlier, my OpenSSL settings on Android where not working, but I was able to fix it by downloading new OpenSSL files from online. After that, all the settings in Android settings have a checkmark to signify that they are working.
After that, I tried to run the program with the Android kit. However, unlike for you in the videos, Qt Creator did not auto detect an Android kit. In fact, I have uninstalled and reinstalled Qt numerous times to see if it would detect an Android kit. However, since this still did not work, I manually created my own kit. Here is a screenshot of what I filled out for it:
However, as you can see on the Qt version section, "Qt 5.15.0 for Android" is considered invalid. I have installed previous versions and the current version of Android numerous times on the Qt maintenance tool but all of them show as invalid. As a result, I changed the Qt version to "5.15.0 MinGW 32-bit".
When I tried to run the program, I got an error about not finding the gradle scripts. After researching, I found that since my Android SDK is past version 26.0.0, it is not downloaded with the SDK but should have been downloaded when I installed Qt. Since it clearly was not, and downgraded my version of Android SDK tools to one with the gradle scripts. There is still a green checkmark after it, so it was the correct SDK.
When I tried to run again, my Qt Creator crashes (meaning my laptop exits from Qt Creator immediately). As a result, I only try to build it. When I built it, I get the error that "Android deploy settings file not found, not building an APK. ". I tried researching the problem on the Qt forums and stack overflow but I could not find a valid solution. I continued to experiment more to get to the bottom of my problem.
Additionally, even before I run or do anything, when I start Qt, I get the following errors in general messages:
There are only 3 errors which seem to be repeated every couple of minutes. I have no idea what the some of the errors mean, but for the first one, I created a Android_NDK_ROOT environment variable, in the build settings for the project, Qt environment settings(tools->External->Configure->Environment->External Tools->Update Translations), and my Windows Environment variable settings and wrote "ANDROID_NDK_ROOT = ANDROID_NDK_ROOT=C:\Users\arjun\AppData\Local\Android\Sdk\ndk\21.3.6528147". However, even after all if this, my program still gave the same errors. Additionally, I could not figure out what the other two errors meant and choose to ignore them.
After this, I completely deleted my Qt Creator, and all the things I downloaded along with Qt. I then downloaded Qt. It basically did not change anything, except when I run it, I get a completely different error.
Here is the current state of errors and settings my Qt is in:
My Kits:
My Qt versions:
My manually created android kit:
Current compile output error:
Current Android settings:
Current general messages:
These are some file errors I have been getting randomly on Qt, usually when I try to run something. For the most part, I have been ignoring them and but they might be relevant to my problem. These come back to back, usually more at a time:
Issues I get when building:
In conclusion, my Qt is being difficult and I cannot seem to figure out how to run Android. I have followed all your instructions on the video as well as a lot more but I still cannot figure it out. Can you please help me fix the problem so that I can run Qt Applications on virtual android devices?
Thank You so much for your time and effort!
Using Studio 2.3, gradle:2.2.1
When I try to attached debugger to app, it shows Android Hybrid Debugger ->
Now Launching Native Debug Session Attention! No symbol directories
found - please check your native debug
Start hybrid debugger.
And loading all *.so libraries.
I try to rename Android sdk/lldb to lldb_bak but still starting hybrid debugger.
It takes too long, waste of time. Mean while app is not responding. Can any one help me to disable native debugging. I need only java debugging.
Edit:
After uninstalling LLDB from sdk tools Android Studio ask me for Quick fix dialog saying "C++ debugger is missing". If I press yes. It install LLDB again and if I press no it gives me error saying.
Error running Android Hybrid Debugger (23533): C++ debugger package is
missing or incompatible
By the way I am using wireless debugging and I have c++ module with sources in my project.
Changing run configuration -> "Debug type" to 'Java' doesn't work for me.
I found solution. Select Java from debugger list. Enjoy. Sometime it happens :)
For the ones still looking for a permanent solution:
Go to menu Run, then Edit Configurations. Under Debugger then select the Debug Type Java.
Xamarin.Forms PCL android project has been working fine and I was deploying to emulator to debug successfully. Now it fails to build and I get an "Unexpected error...Reason: An item with the same key has already been added"
When I just build the project, it builds successfully, but when I build by trying to deploy to an emulator, it fails.
This started happening right after I installed a bunch of Android SDK updates to I could test against the newer Android versions. Also installed the HAXM drivers to try and run a faster emulator. Also did some consolidating and updating of NuGet packages. Also changed target from .NET 4.0 to 4.5.
I can successfully start both the older emulator that I was debugging on previously as well as the new one I've added.
Lots of recent changes so I'm not sure which one is the culprit. I need to know how to get some more detailed logging of why the build failed so I can fix it.
Currently the Build Log is set to Diagnostic, but I don't see any specific reason it's failing to build.
I found the culprit in the Android Options page in the Project Properties.
Under the "Packaging" tab, the "Use Shared Runtime" option was unchecked. As soon as I re-checked this option, I was able to successfully build and deploy again.
I recently switched from Eclipse to Android Studio because I read that it is now the official IDE for Android application development. I downloaded and installed the latest version (1.0.2) for Windows. When using the program for the first time, I decided to create a test application to see if the program was working correctly. Unfortunately, it was not. Once I clicked the finish button to complete the New Project Wizard, A loading bar showed up that said Gradle: Build. This is where the program gets stuck. There is no error message and it appears that the program is running fine, however the build never actually completes. I am never given my MainActivity.Java class, or my activitymain.xml document. If I click the cancel button, the program freezes and I have to use the TaskManager to kill the program. If I re-enter the program and choose to open an existing project, my project will be there. However, upon trying to open the project, I am greeted with the same Gradle: Build loading bar.. I have been searching for an answer for the last 3 days and nothing has worked. Any help is greatly appreciated!
Things I have tried:
Simply letting the program sit for a while to see if it was actually downloading something and was just really slow. I let it sit for 45+ minutes before killing the program.
Uninstalling and re-installing Android Studio
Restarting my computer
Turning off my firewall (Kaspersky)
Running the program as an administrator
Connecting to a different network
Disconnecting my computer from any networks (to force the program to build in offline mode)
Manually downloading Gradle from the link that Android Studio attempts to use when it gets stuck and telling the program to use that file instead of downloading another one.
(I went to this link https://services.gradle.org/distributions/gradle-2.2.1-all.zip, downloaded the file, unzipped it, went to Gradle settings in Android Studio, checked the Offline work checkbox, and finally set the service directory path to my unzipped Gradle folder.)
Hopefully I have given enough information and made it clear what my problem is. If not please tell me what else I need to explain so I can get this issue resolved. Thanks!
Please note I am working on a 64 bit machine running Windows 8. Also, I use studio64.exe
to run the program.
From the discussion we had in the comments, it does not look like you have your gradle on your windows path.
Please change the below to point to your gradle install:
set GRADLE_HOME=C:\<installation location>\gradle-1.11
set PATH=%PATH%;%GRADLE_HOME%\bin
After this, verify that in the terminal running the following works:
gradle tasks
once you get this working, you will want to run the following in your project:
gradle wrapper
This will produce a .bat file which you can then use to run gradle through the wrapper, letting you support multiple native gradle installations.
I note that this has been asked before but I haven't found an answer yet. The main tell tale of this problem is that Eclipse stops on break points when the apk has been deployed as "Run"
I've done these so far and none produce a correctly running "Run" build from Project shell -> Run As -> 1. Android Application
• Disconnecting, uninstalling and re installing the apk does not fix the problem (this is a tablet device, not an emulator.)
• Made all of the project and library projects write able using the file system
• Brand new projects work correctly e.g. they don't stop on breakpoints in "Run" mode in the same Eclipse workspace as the problem project
• Window -> Preferences -> Run/Debug(expand) -> Launching "Launch in debug mode when workspace contains breakpoints" is set to never
• Closed and opened Eclipse
• Killed all of the running processes under the "Debug" tab in that perspective
• Cleaned the entire workspace both in Eclipse IDE and manually by deleting the res and gen folders of the main and library project dependencies
• Checked for the occurrence of the word "debug" in the project build files
• Clean built the project from the command line using: ant clean then ant release
Interestingly enough, when I clean build from the command line then fresh-install the new apk, if Eclipse is open the debugger will attach to the running process and stop at the first break point! If Eclipse is closed, the program will wait for the debugger with the standard "Waiting for Debugger" dialog.
So something is broken in the build process (haven't figured out what all files are getting involved yet) and/or something in .metadata and/or some depenency.
edit
I've found a file at:
C:\Projects\Mobile\Android\.metadata\.plugins\org.eclipse.debug.core\.launches\MyProjectName.launch
in the xml:
<launchConfiguration type="com.android.ide.eclipse.adt.debug.LaunchConfigType">
Don't know if it's a clue, but if I delete the file Eclipse will just replace it with the same.
edit
*Confirmed that the project Runs correctly when built and run from another machine, so I suspect that it's my work machine's Eclipse workspace that's causing this issue. Maybe I need to throw out all of the workspace's metadata and start over.
I encountered same issue. The solution is, restarting your device. Good luck.
You said you have breakpoints?
Try:
Window -> Preferences -> Run/Debug(expand) -> Launching
There should be a section entitled "Launch in debug mode when workspace contains breakpoints"
If that is not on "Never" that would be your problem.
I have the same problem and I need 4 steps to resolve them:
Disconnect the device
Reboot the device
Clean and build all the projects in workspace.
Start the app in emulator in Run mode and check it's ok.
Start the app in the device in Run mode and all works ok.
Only restarting the device not works for me!
I've encountered same problem: I could run my application only in debug mode, but it won't properly start when I press 'run' button. I've tried all solution here, but nothing works for me.
After some time I've found android.os.Debug.waitForDebugger(); in the begining of my Activity. I hope this answer sometimes help someone, because this question was first in Google, when I search for help.
Update
Use Intellij instead of Eclipse for Android development (far fewer IDE interface bugs) and then disregard the following altogether:
Two important rules I've found since the original post:
1) Get in the habit of waiting until Eclipse is finished build the workspace - the indicator shows up in the bottom left corner of Eclipse by default. WS build times can take minutes in a large project with multiple libs. Don't change anything until the build is complete.
2) Close all projects in the workspace and reopen them one-at-a-time starting with the project with no lib dependencies and so on. Make sure not to open a project until you can verify the the workspace has finished building what is already open. Fix any issues along the way before opening the next project.
Good luck.
Happens to me sometimes - have you uninstalled the application completely from the handset and tried to reinstall? Can you install the apk and then disconnect the handset from the machine? (obv won't work if you're using an emulator)
Faced same issue on Samsung S4 and issue is fixed by unchecking "Wait for debugger" option under "Developer options".
Had the same issue, check that you haven't got this line of code anywhere in your project:
android.os.Debug.waitForDebugger();
It may exist in a Service for debugging purposes, once you comment it out it will work in release mode. The problem is that this line of code waits for the debugger, and if you're not running in debug mode it will wait indefinitely