AndEngine classes - problems with opening declarations: Source not found - eclipse

Im working with AndEngine in eclipse (which is a 2d physics/tiling engine)
Everything works fine yet when i try to open declaration to classes I get Source not found
I can Change Attached Source...
but i wouldnt know what to change it too...
is there a way i can download the classes so i can view them on my computer (so far im stuck with googling each class and it slows down my progress immensely)
Is this suppose to be happening?
Can i somehow solve this problem or get my hands on some good documentation.

I fixed the problem by extracting the jar file with the JD GUI program. Then i simply opened the declaration and then clicked change attached source... and pointed it to the file (which is still zipped it doesnt work if you unzip it) Everything works well now :D

Related

Remote Swift Package: Xcode won't pause at this breakpoint because it has not been resolved [duplicate]

Shortly after updating to Xcode 13.2.1 I started seeing some weird behaviour of breakpoints. When I run an app (in a simulator) some of my breakpoints change their look and turn to dotted blue outlined. Xcode does not stop execution at these breakpoints although code has been compiled, loaded and executed. I checked it in Console by adding some prints.
When I hover over breakpoint Xcode shows a message:
Xcode won't pause at this breakpoint because it has not been resolved
Resolving it requires that:
The line at the breakpoint is compiled.
The compiler generates debug information that is not stripped out (check the Build Settings).
The library for the breakpoint is loaded.
All trivial solutions like reloading, reapplying breakpoints have not helped.
Did anybody else see something like this? Is there a way to solve it?
Screenshot for reference:
Ok, so in my particular case rebooting laptop has helped. All breakpoints are now good. But it would still be nice to know the cause of the problem.
Make sure that the file in which you are adding breakpoint is having correct target set in target membership.
Click on .m file in which you want to add breakpoint.
Select the file inspector.
Check if you have selected correct target for that file or not (check below image).
What worked for me, was to select the files, delete them with - Delete>Move To Trash - and then drag the files back from the trash to the project.
In my case the issue was happening, because class was not added to the target, which I was trying to build.
For my case somehow the code path was never invoked and very likely considered as dead code. The same thing applies when not adding the file to the target that you want to debug.
This can be the case or somehow debugger might not be able to resolve your breakpoint. The first thing in this case should be cleaning derived data and any caches.
But instead of recloning your repo you can just delete breakpoint config from the location described in this answer
In Xcode 14 the problem is much more prevalent and "consistent". I figured out one pattern where it always fails and how to mitigate it.
If you have a final class then breakpoints set on or inside a private method will have that issue. If you remove private from the method or final from the class the breakpoints will get resolved properly.
If tried everything and nothing worked I suggest the following:
Reclone your repo
This is what worked for me.
I just passed through this problem and the solution for me was recreating the files.
Note: The ones I was trying to originally breakpoint on were copied from another project. When I created the new files, even though their Identity and Type looked just the same (target membership, encoding, paths), for some reason breakpoints started to work again.
Note 2: When copying and pasting code to your new files (if done manually), migrated breakpoints - created in the older file - will continue to fail. Only the ones created in this new file will work properly.
Hope it helps.
My case
Working on framework development. Framework is injected into the sample app for development/run purpose. Breakpoints inside the framework won't work.
Fix
Just removing xcframework in sample app and replacing with framework.
Reason
xcframework are precompiled outside of the app, so lib isn't compiled when project is built and that's why breakpoints doesn't work.
For me reboot the Xcode, and it works~

Make sure that there are no compile errors and that the file name and class name match

I keep getting the same error over and over no matter what I do.
"Can't add script component 'PlayerMove' because the script class
cannot be found. Make sure that there are no compile errors and that
the file name and class name match".
I am very sorry that this is very long, but this is the extent of what I have been trying to do to resolve this problem, so please be patient.
I have been working on this 2D project for three weeks. It was working fine until 3 days ago. So far, I had only created the environment and added characters who were doing nothing. There is music and effects. All of these is (still) working fine.
Then I added a script to make my character move. Here is the script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour {
public float moveSpeed;
public Rigidbody rb;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
rb.velocity = new Vector3(Input.GetAxis("Horizontal") * moveSpeed, rb.velocity.y, rb.velocity.z);
}
}
I was so happy, my character was moving!! There were no errors! It was all fine. It worked like that for two more days after adding the script. I'm saying this to emphasize that Unity did not crash because of the script.
Unity crashed, this happened on Monday. Even though I did not lose my project files, and restarting Unity did not work, I had to uninstall and reinstall Unity. My version was 2019.4.1f1 before and after as well, been working on same version, since I don't want to get stuck with upgrade issues.
When I reinstalled Unity and reopened my project, unfortunately, Cinemachine and ProBuilder were both gone. This is another problem I have been facing since the start. But that should be another topic.
PART 1
After a lot of work, I gave up and decided to create a new project. Following are the steps I took:
I created a new project
installed CM, PB,
went and imported my project.
The script was not working so I reimported it.
PART 2
It still did not work, so I created a new script- with a different name- by using the method of right clicking in Assets and creating a script.
Then I just copied my THREE LINES OF CODE - literally as you can see above - and tried to add it to my character. Still not adding. It wants to know if the class name and file name are same - which they are of course - no matter how many files I create, in whatever method, I make sure the class name and file name are same. And the class does inherit from Monobehavior. Plz refer to error message in start.
PART 3
I then created another script file. I deleted the previous script, made sure there were no other scripts with similar names, then went to the PLAYER and created a file from the Add Component menu in the Inspector. I double clicked the file from there and then added the code. And after I had saved it in VS 2019, it's an invalid file in the Inspector in Unity.
I have tried doing this with several file name changes. And I have tried to import the script file from another folder. I keep getting the same error over and over again. Just now I finished reimporting all process as well. I even uninstalled VS 2017, and installed all latest .Net SDK Frameworks.
I'll be grateful to anyone who can help.
I also added this question to the Unity forums a week ago (I was getting same error message), and was successful in resolving it, but now that solution is not working.
Remember that I have created absolutely no other scripts. The only scripts present in my project would be the ones attached already to the assets, and there is no asset in my project that requires a movement from input, or can be called a "player character" game object.
Oh, and I also tried to re-drag (?) the Prefab of my Player asset from the main folder over to the scene view. I even just now reimported the whole thing - Reimport all.
I have been trying to shorten the question over and over, but the steps I took to resolve this issue were so many that I could not manage it.
However, good news is that I did finally resolve the issue.
Of all the things that could be expected, this is what worked: I went and deleted all "SmoothMoves" folders from my assets. I have no idea why that helped, I don't know the connection.
Please read this question I posted on Unity Answers - anyone with similar issues - as proof that I don't know what effect SmoothMoves files and folders had on my project and I don't know what effect removing it will have. (Yes, I know some of my character assets (enemies) use SmoothMoves, but I'm still not sure what was in those folders I deleted).
But my main player characters are both now moving. My script file added to the game object without so much as a blink.
https://answers.unity.com/questions/1753426/smoothmoves-dll-file-problem-can-anyone-please-hel.html
So this problem, make sure the class name and file name are same, an odd issue, can arise from SmoothMoves folders (I still have all character prefabs in the project, I only deleted the specific SM folders ONLY). Be careful.

Buttons broken using new Input System

I've got a problem that is seemingly impossible to debug. My project originally started using 2019.2 and upgraded to 2019.3 without any problems. I then installed the preview package for the new input system.
This "disabled" all the buttons in that they are visible in the editor and during run time but they are impossible to click on or interact with.
To reproduce this issue I tried:
Creating a new empty 2D project
Installing and switching to the new Input System
Importing their demo scene from the package manager
At this point I tried running each scene. All of them worked except "SimpleDemo_UsingActions.unity".
I added a button to the "SimpleDemo_UsingPlayerInput.unity" and added a script to the button. With a function:
public void Button()
{
Debug.Log("Button Pressed");
}
I ran this scene and it worked! I could move around shoot the cubes that is built into the script and I could click on the button and it showed in the log.
For this reason I am stumped. I do not know how to debug this issue.
Can I have some advice? Has anyone had a similar issue or know how I would go about debugging this?
I managed to find the answer. For some reason using the new input system's "InputSystemUIInputModule" breaks all the UI and just does not work.
I fixed it by just deleting my EventSystem and creating a new one in the scene.
Do not. and I repeat. Do Not use the new input system's manager for the event system.
I write answer because it's first result in google.
To get rid of this, select EventSystem in hierarchy, then in inspector you should see warning and button to replace old input system with new.
Unity ver. 2019.4.1
Input System ver. 1.0.0
I'm still currently testing but I manage to get something by duplicating the defaultInputActions.inputactions file from the Packages >> Input System >> InputSystem >> Plugins >> PlayerInput.
I realized that that .inputactions has a UI Action Maps. I added more Action Maps and did some testing, the added action maps works and buttons are somewhat reacting as well.
Just sharing this now so that more developers can test this with me and hopefully find a way to work around this major issue.
Had the same issue. Make sure that the input system package, does not have any devices inside... It worked for me after migrating from the Previous Input System

Interface Builder caching bad data (voodoo)

Sometimes IB will hold onto old or bad references, and I cannot seem to remove or edit them.
EDIT I have made this a wiki question with the intention of gathering more data on the phenomenon. Answers involving situations where other coders have encountered this are welcome.
This happened to me again last night with a table controller. When I created a spike project to try and reproduce the error, the system worked the way I anticipated. Then back in the actual project the bad behavior continued, even if I remove the xib file and all controllers involved.
Creating a whole new project with none of the original (problematic) xib and nib files worked correctly.
This question is not about the specifics of this incident but about this type of incident in IB.
Does anyone know more about this type of bad IB behaviour, and possibly a more stylish way to to eliminate it than nuking the project?
Note, removing the offending IB files and recreating them in the same project has not solved this for me in the past, only whole new projects.
Answers regarding examples of when/how this glitch has been observed/created are welcome as well.
I fixed this type of caching problem by clicking File > Read Class Files ... and pointing IB to my class files. Bingo, it read them fine, and everything worked. :-)
The only real suggestion I have is to file a bug report at http://bugreporter.apple.com/ with a reproducible project as the attachment; in my experience Apple do look at these things. That said, you say that re-creating the XIB in the same project didn't fix the bug. What about replacing the other end of the link; i.e. re-create the header file and use that new header with the existing XIB? Perhaps that's sufficient to prod IB into updating its model.
I just had a project where this happened and I was banging my head trying to get it to update properly in IB 3.2 (732). I really did not want to redo the xib from scratch. I tried drag/drop of the *.h files, restarting, reloading everything and it didn't work. I also tried File->Read Class Files which didn't work. Strangely though, File->Reload All Class Files worked like a charm.
I find that File > Read Class Files fixes it for a single nib file, however the nib doesn't remain in Sync with any future changes and the fix doesn't apply to any other files in the project either.
Restarting and/or clean building didn't help either, but new projects are fine. This has been happening to me in Xcode/IB ver 3.2.2 - so far the only solution has been rebuilding the code in a new project.
Maybe not the answer you want, but here it is: Do not use IB! :-)
I had troubles using it too, even when reproducing exactly the steps as described in some Apple docs, trying multiple times from scratch. So after 3 days I just gave up and started doing everything programmatically, implementing my program in half a day. I have never looked back since. I only launch IB occasionally to look at sizes, so I can feed them into my code.
It will probably be less easy to update my GUI over time, but if your story is a real recurrent problem, I'm glad I parted ways with the beast!
When you say old or bad references, do you mean it is trying to link UI elements to outlets or actions in a class that no longer exist? If that is the case then go to the connections panel (cmd-5) and select the object in your nib file. It should show you all the connections. Any where the text is greyed out and have an exclamation mark should be deleted (hover over and click the x).
In IB, you are only connecting to a "promise" of what your class will be like when the app launches. IB normally only lets you connect stuff that can fulfil that promise, but if you change the header in Xcode there's nothing IB can do about it besides warn you.
Try making a clean build of the code and then see if the old references remain in the xib
You don't say if the problem has persisted across restarts, so I think it might be this issue: There is a rare bug in Xcode's build process where sometimes old versions of output files are stuck in the /tmp folder and won't get updated. IIRC, the easiest solution is to clean the target and reboot your computer.
Are you saving the header files? Interface Builder parses the content of your header files on disk, not the unsaved files in Xcode's editor. If you add an outlet to a header file, and switch back to IB without saving first, IB won't see the new outlet.
I had exactly the same problem with IB when I created a new project out of an old one.
I can synchronize IB with the new .h files but IB still gave the removed references (from the old project) when I right-clicked the object ( the class name "MainController" was the same from the old to the new ) even though those references did not exist in the updated code at all.
"You don't say if the problem has persisted across restarts, so I think it might be this issue: There is a rare bug in Xcode's build process where sometimes old versions of output files are stuck in the /tmp folder and won't get updated. IIRC, the easiest solution is to clean the target and reboot your computer." I tried to clean the target but it did not work.
However, once I deleted the MainManu.xib and created a new one (there would be a bit work to design the interface by hand), the old references were gone.
I experienced the same problem. It happens when I open a project made with old Xcode version. Interface Builder does not sync correctly with Xcode. Yes, I can manually update the IB cache with the 'File->Read Class Files...', but even with this method garbage remains. I mean old IBOutlet and IBAction still shows up.
Just had this type of incident and fixed it by using XCode's refactoring to rename classes to different names. Seemed to get stuff restarted.
Reading the problematic class file again has solved this problem for me.
QUICK EASY SOLUTION: - no computer restart, no new project required . . .
Unfortunately none of the suggestions in this post have fixed this issue for me (aside from restarting my computer and then starting a whole new xcode project)
MY SOLUTION...
Anyway, the only other quick fix (that works for me with Perfoce at least), is to back out (revert) my changes in my revision control system. We are using Perforce, and this seems to work just fine.
I didn't have to create a whole new xcode project, no restarting the computer, no restarting xcode even, no manual deleting of files or references, no re-references classes, no click and drag garbage to deal with, no manual settings changes, etc.
DOWNFALL...
If you are walking all around xcode and the IB for a while, and have made a lot of changes, and then all of a sudden the issue occurs... you will then of course lose everything in the files you revert... QQ
glhf
-eric
SIDE NOTE...
this is a pretty bad bug, and definitely consumes a lot of time, especially if its your first time coming across this issue (and I'm sure everyone here realizes, that time is essential to a developer). This is the first time I've ever been disappointed with apple/obj c/xcode (started 2 months ago), and i sense this won't be the last : /

Bypassing Lock on Generated Code in NetBeans 6.5?

In NetBeans the GUI Builder generates code that is off limits to you from the editor.
I know you can switch to Design Mode and specify custom code and then enter edit in indirectly that way, but it's a pain to not be able to edit text that's 2 lines from your cursor.
Can I allow editing within those regions... I promise I'll be careful :)
Thanks.
Note: I don't want to lose code generation
If you open it in an external editor, there are two possibilities:
there is no guarantee that the changes you make will work (and not break anything) in the Netbeans UI Editor
The next time you edit the file in Netbeans it will be regenerated.
Either way, probably not what you want. The best thing to do would probably be to make the whole design up in the gui editor and when you are happy with it, delete the comments and continue on.
[sarcasm]
With the drag and drop gui editor, what could you possibly want to change by hand anyway?
[/sarcasm] ;)
If you open the .java files in Notepad or WordPad, you'll find pairs of comments that say
// GEN-BEGIN: <name of section>
...
// GEN-END: <name of section>
Delete those comments, and two things will happen.
You'll be able to edit anywhere in the file in NetBeans.
NetBeans will not be able to regenerate the file from the GUI editor.
So it can be done, but don't do it unless you really mean it.
EDIT: "Note: I don't want to lose code generation." Ok, let's see here.
You want to change what is generated.
You don't want to lose code generation.
You don't want to use the facilities NetBeans provides for adding custom code.
It sounds like you're wishing yourself trouble. :D
I had a same problem. I extended JPanel with my own panel class and I was not able to pack it with the rest of UI. First I searched the web and I found your question. I was not able to find elegant solution to this problem.
Therefore, I decided to create another java class and copy NetBeans created code into it. It worked like a charm.
I agree, it would be nice if we can modify existing code like in .NET.
I copy the initcomponents() method, create my own method newInitComponents() paste the generated code, and override what needs to be overridden before i distribute the code. That way when a change is made in the editor, you can still copy paste the code into your new method. You keep the functionality without costing you the ability to override where necessary. Just call newInitComponents() in your constructor rather than the original. This is not the most efficient way of doing things, but it does what you want.
You can also try moving the .form file in
(project name)\src\(name of JFrame/JPanel).form
NetBeans will now see it as a .java file.
If you did not edit anything necessary for the GUI editor, you can move the .form file back into the src folder.
Can you subclass the class and redefine the method where this code is? Of course then you'll have to maintain the method over time as you make changes to the GUI.
You can maybe also look into AspectJ. It will modify the byte-code at build time and make the changes you define. Not sure if this gives you enough control over what code to change.
If you use APT you can rewrite source code at compile time. This way you can overwrite the code that's there at the moment. You could keep the new code in the same Java file along with comments to explain what is going on. This tutorial makes it pretty easy to get started. Copy that code, get it working, then tweak it to your liking. To find out where in the code the annotated method is call getPosition() on the Declaration.
Go to design page and select any one of the fields. Right click on any selected field and choose Customizer Code , In Customizer Code change all default code to custom creation . Now you can edit your design code as you like...
Very simple... the crappy UTF-8 did not let me compile one JasperReport (everything done by GUI). So, I needed to change Project to iso-8859-1. Result? The project is messed up and some of the things to correct are in the blocked parts of the code. So, I really NEED to edit those automatically generated parts. When they are regenerated, they will be fine because the project is now iso-8859-1.
Step # 1 Close the project in NetBeans
Step # 2 Delete the .form file from the source directory of your project
Reopen the project and it will be editable now!