[Q] Setting up IntelliJ - Android Software Development

Haya guys, I have had to start using IntelliJ to make my apps because Eclipse has been giving me the good old "R cannot be resolved to a variable" error (of witch I have done all fixes for and I still keep getting it) and I could no longer test my code using it. So i found on the internet a post suggesting to use IntelliJ, I have set it up as best as poss how ever when i click the run button, i get the following errors:
Compilation completed with 15 errors and 0 warnings
invalid resource directory name: C:\Program Files\Android\android-sdk-windows/add-ons
invalid resource directory name: C:\Program Files\Android\android-sdk-windows/docs
ect ect ect
I think i see the prob its using a "/" and not a "\" (running windows). Any I else use this program, and would be kind enough to tell me how to fix it?
(or if any knows as to why Eclipse gives that error)

Related

DumpXip

I’m trying to run the dumpxip.pl perl script..
I Installed activestate Perl (maybe you recommend a better perl?)
I also downloaded the win32 patch at http://www.xs4all.nl/~itsme/projects/perl/Win32-API-0.41-wj2.tar.gz
And ran makefile.pl
Then nmake
I get several errors saying it cant find API.pm struct.pm etc etc
I put the files in the places it expects and I get:
Can't locate loadable object for module Win32::API in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\DOCUME~1\ADMINI~1\Desktop\N1 sw\dumpxip.pl line 9
Compilation failed in require at C:\DOCUME~1\ADMINI~1\Desktop\N1\sw\dumpxip.pl line 9.
BEGIN failed--compilation aborted at C:\DOCUME~1\ADMINI~1\Desktop\N1 sw\dumpxip.pl line 9.
I’m sure I’m not installing it properly.
Any ideas? Has anyone else sucesfully run this?

How to patch drivers (on WM5) ?

Hi,
I'm trying to patch the keyboard driver on my HTC Universal to still work if the clam is closed.
I patched one byte in the dll to change the return value of a specific function, and re-signed it using some kind of signing package with the sign.bat.
However, upon copying it to my device, after a soft-reset it seems like the keyboard driver just wouldn't load.
None of the keys worked, and in the start menu all shortcuts with shortkeys were prefixed with a & character.
Is there anything special I need to do to get this driver to load ?
Thanks,
TB
We have seen the same thing. As I understand it, under WM5 drivers have to be signed to be loaded, by changing the byte you've probably invalidated the signing on the DLL thus stopping it loading.
undergrid said:
We have seen the same thing. As I understand it, under WM5 drivers have to be signed to be loaded, by changing the byte you've probably invalidated the signing on the DLL thus stopping it loading.
Click to expand...
Click to collapse
As I said, I (tried to) re-sign it using some kind of sign.bat
Source of sign.bat is:
Code:
@echo off
if "%1" == "" goto oops
if not exist %1 goto oops2
signcode -spc TestCert_Privileged.cer -v TestCert_Privileged.pvk %1
goto exit
:oops
echo Usage: sign [filename]
goto exit
:oops2
echo %1 not found.
echo.
:exit
You have to make sure that the certificate is known to the device.
Even test certificates that come with MS Visual studio need to be registered on the device before you can use them.
Search this forum on how to add certificates to devices (there are several threads on this)
Got tired of trying to import a patched keybddr.dll,
So instead I wrote an app to patch the driver when already loaded, mwuhahaha!

[TOOL] [PROJECT] New bugreport analysis tool - open source project by Sony Ericsson

Hi all,
ChkBugReport is a tool that helps you analyze your crash files. Because this tool is such a great help for our internal developers at Sony Ericsson, and as a part of our ambition to step up our open source activities, we want to give all of you the chance to use it by making it open source. Pál Szász (XDA username: pal.szasz), a software developer at Sony Ericsson, is the creator of this tool and will monitor this thread for questions, discussions and suggestions. Feel free to have a look at the open source project and contribute to make it even better!
https://github.com/sonyericssondev/ChkBugReport
For the full story follow the full story in Developer World
/Karl-Johan Dahlström
Sony Ericsson Developer Program
Nice. Any intention of integrating this into some IDE ?
I haven't thought about IDE integration. What do you have in mind exactly?
What I'm working on is automatically opening the result in a browser when processing done (already in the source code, although I tested only in osx at the moment).
Another functionality in progress (not uploaded yet) is to use ADB to automatically save a bugreport. So you would just execute
Code:
chkbugreport --browser adb://
and it will save the bugreport, analyze it and open the result in a browser (as a bonus a screenshot is saved as well).
When this would be implemented I think it would be easy to add it as an external tool in eclipse and launch it from there.
pal.szasz said:
I haven't thought about IDE integration. What do you have in mind exactly?
What I'm working on is automatically opening the result in a browser when processing done (already in the source code, although I tested only in osx at the moment).
Another functionality in progress (not uploaded yet) is to use ADB to automatically save a bugreport. So you would just execute
Code:
chkbugreport --browser adb://
and it will save the bugreport, analyze it and open the result in a browser (as a bonus a screenshot is saved as well).
When this would be implemented I think it would be easy to add it as an external tool in eclipse and launch it from there.
Click to expand...
Click to collapse
One possible IDE integration would be for the report to have linkable parts to the source code when applicable.
Also selecting the process from a windows, having UI buttons starting and stopping the capture of profiling data would be a bonus.
Anyway, the application works very well, and thumbs up for open sourcing this tool .
BTW in my case I've came across some missing resources when generating output:
Code:
Writing chapter: Trace charts/Thread-17 (Thread-18)...
Writing chapter: Main thread activity...
Writing footer...
Cannot find resource: /style.css
Cannot find resource: /icons.png
Cannot find resource: /ftrace-legend-dred.png
Cannot find resource: /ftrace-legend-black.png
Cannot find resource: /ftrace-legend-yellow.png
Cannot find resource: /ftrace-legend-red.png
Cannot find resource: /ftrace-legend-cyan.png
Cannot find resource: /ftrace-legend-dcyan.png
Cannot find resource: /pcy_p0.png
Cannot find resource: /pcy_p1.png
Cannot find resource: /pcy_p2.png
Copying extra resources...
Cannot find resource: /pcy_p3.png
Cannot find resource: /pcy_p4.png
Cannot find resource: /pcy_un.png
Cannot find resource: /pcy_rt.png
Cannot find resource: /pcy_fg.png
Cannot find resource: /pcy_bg.png
Cannot find resource: /main.js
Cannot find resource: /jquery.js
Cannot find resource: /jquery.cookie.js
Cannot find resource: /jquery.jstree.js
Cannot find resource: /jquery.hotkeys.js
Cannot find resource: /jquery.tablesorter.js
Cannot find resource: /jquery.tablednd.js
Cannot find resource: /themes/classic/d.png
Cannot find resource: /themes/classic/dot_for_ie.gif
Cannot find resource: /themes/classic/throbber.gif
Cannot find resource: /themes/classic/style.css
Cannot find resource: /themes/blue/desc.gif
Cannot find resource: /themes/blue/bg.gif
Cannot find resource: /themes/blue/style.css
Cannot find resource: /themes/blue/asc.gif
DONE!
Regarding the resource errors: did you used the precompiled binary or compiled the source code yourself? If it's the later one, how did you compile it? While developing I use eclipse, and I have the "res" folder added a source folder as well. This way the contents of the res folder will be copied to the jar. If you compiled it in some other way, then probably the resources from "res" where not packed into the jar. Building with the ant file should work as well ("ant -f chkbugreport.xml" if I remember correctly)
Regarding the IDE integration: yes, linking/binding the source code would be nice. For tracing data there is already something in progress: running "chkbugreport -t adb://" will show a window to select a process and start/stop it's profiling, but since that code uses code from the android sdk, I need to check how I can link the two codes together (since one of the codes is GPL, the other is Apache) before I can publish it.
I uploaded the changes for adb support. Now an extra jar file is needed: ddmlib.jar. You can find this either in the source code repo, or in the android sdk (a recent one is needed).
I updated the wrapper script as well, to use ddmlib.jar. However if the ddmlib.jar is missing, then the tool will still work like before, simply the new functionality will be missing, which is:
Code:
chkbugreport --browser adb://
The above command will run the bugreport tool on the phone (if it's connected to the PC, of course), processes it and open the result in the browser. As extra bonus, a screenshot is saved as well ;-)
Code:
chkbugreport --browser -t adb://
This will show a window, where you can select which process to trace. Click START then STOP, and the tracefile will be created and processed (and opened in the browser). BUT: there are some limitations:
* adb must be run as root (the tracefile is saved to the /data partition), which means either run en ENG build or USERDEBUG (but then you must first execute "adb root")
* it seems that the fileformat for traceview files have changed, the tool currently supports only version 1, so this will not work if you have a recent android version. I'll fix this later.
pal.szasz said:
Regarding the resource errors: did you used the precompiled binary or compiled the source code yourself? If it's the later one, how did you compile it? While developing I use eclipse, and I have the "res" folder added a source folder as well. This way the contents of the res folder will be copied to the jar. If you compiled it in some other way, then probably the resources from "res" where not packed into the jar. Building with the ant file should work as well ("ant -f chkbugreport.xml" if I remember correctly)
Regarding the IDE integration: yes, linking/binding the source code would be nice. For tracing data there is already something in progress: running "chkbugreport -t adb://" will show a window to select a process and start/stop it's profiling, but since that code uses code from the android sdk, I need to check how I can link the two codes together (since one of the codes is GPL, the other is Apache) before I can publish it.
Click to expand...
Click to collapse
I compiled my own using IDEA, but since I didn't get any errors during compilation (I think) I didn't assume I was missing something in the compilation process.
About the other changes, why not output the traces to /sdcard ? Since that one is always R/W to all users should work right? I say this without actually having looked at the code behind the magic, so perhaps is not a valid suggestion.
I am planning to add support for that as well (i.e. the user can select where to save the tracelogs). AFAIK the sdcard is only readable for everyone by default, apps need to have a certain permission (something with WRITE_EXTERNAL_STORAGE) in order to be able to write to sdcard. But if you are debugging your own app, that's not a problem.
I haven't updated this thread in a looong time. I'm pretty close to put up some more detailed documentation and examples, hopefully I can do it tomorrow.
Meanwhile as a teaser here is an example report generated from a bugreport: http://sonyericssondev.github.com/ChkBugReport/examples/bugreport_aidldeadlock_out/index.html
The shell user does have permissions to write to sdcard, so if you're doing that via adb it should be good.
Sent from my GT-P1000
Well, finally I had time to add some documentation: https://github.com/sonyxperiadev/ChkBugReport/wiki (it's not complete, but at least a good start)
Also source code is pushed and added a new precompiled jar (I started to add the version number in the filename so I can keep the old versions as well): https://github.com/sonyxperiadev/ChkBugReport/downloads
And as usual, any kind of feedback is welcome
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
New link: https://github.com/sonyxperiadev/ChkBugReport
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Since I cannot edit the first post (since it was not created by me), and the link is broken, I started a new thread: http://forum.xda-developers.com/showthread.php?p=34960691
clear post
pal.szasz said:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
New link: https://github.com/sonyxperiadev/ChkBugReport
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Click to expand...
Click to collapse
There are many people, new to development.
Always try to post step by step instruction which will help others....
Is there anyone here that can look at a bug report that popped up on my friend's phone and be able to tell who hacked her phone? She is in bitter custody battle and we are trying to prove it is the ex doing this with intent for court purposes. Please help! If willing please respond and I will give a private email address to private message due to complex circumstances and we all fear for child and our lives. Thanks in advance.
Hi, what are these colorful icons mean in the VM traces info?

[EXPERIMENT] Building CM11 on Cygwin

I know, I know. I'm probably gonna get a lot of "it can't be done and this is why" if what I've googled is any indication. However, difficult does not equate to impossible.
Firstly, one of the big messages I encountered online was that windows is not case sensitive, thus it can't be done even if you had a toolchain. However, it's entirely possible to turn windows 100% case sensitive (i've got cygwin mkdir Abc and aBc to prove it)
So to do this, go to control panel / programs / turn windows features on or off.
When opened, check the box that says "subsystem for UNIX-based applications" and hit okay.
Now open a browser window. Download This.
Install it, and on options near the beginning of the install check EVERYTHING.
Reboot at the end of the installation. Windows is now fully case-sensitive.
So now, after repo sync and running through the motions (get-prebuilts, breakfast, extract-files, etc)
I now encounter problem number two. Javac: command not found.
So to get around this, download an unofficial build of openjdk-1.7.0 and manually drop it in cygwin.
So after this, I type brunch d2lte
I now encounter problem number three. Build info comes up but ends abruptly at
bash: schedtool: command not found
or something like that anyway. Googling schedtool reveals information about what it does. So, to get rid of the error message, I create a dummy schedtool binary and drop it in cygwin's bin folder. Doesn't fix the build, but makes that nasty error go away.
So now, both brunch and mka will display build info then return you promptly to the command line with no error. However, what does work is the "make" command.
So, I type make bootimage.
Here comes problem number 4.
I get an error message for build/core/java.mk on line 23, saying my target SDK is invalid (here's my version), (here's available)
or something like that.
So to fix, open build/core/java.mk in notepad++, navigate to line 23, and remove the following
Code:
$(error $(LOCAL_PATH): Invalid LOCAL_SDK_VERSION '$(LOCAL_SDK_VERSION)' \
Choices are: $(TARGET_AVAILABLE_SDK_VERSIONS))
else
After which, your build will move forward to..... error number 5
Code:
make: *** No rule to make target '/home/Swisgaar/android/system/out/host/windows-x86/bin/mkbootimg.exe', needed by '/home/Swisgaar/android/system/out/target/product/d2lte/boot.img'. Stop.
Which i fixed, by downloading a .exe version of mkbootimg and dropping it in system/out/host/windows-x86/bin manually, which you can get from here.
After which, moving on to the next error, and the one i'm currently stuck on,
Code:
make[1]: Entering directory '/home/Swisgaar/android/system/kernel/samsung/d2'
/home/Swisgaar/android/system/kernel/samsung/d2/Makefile:327: /home/Swisgaar/android/system/kernel/samsung/d2/scripts/Kbuild.include: No such file or directory
make: *** empty variable name. Stop.
/home/Swisgaar/android/system/kernel/samsung/d2/Makefile:416: recipe for target 'scripts_basic' failed
make[2]: *** [scripts_basic] Error 2
Makefile:130: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/Swisgaar/android/system/kernel/samsung/d2'
build/core/tasks/kernel.mk:169: recipe for target '/home/Swisgaar/android/system/out/target/product/d2lte/obj/KERNEL_OBJ/.config' failed
make: *** [/home/Swisgaar/android/system/out/target/product/d2lte/obj/KERNEL_OBJ/.config] Error 2
Currently working on a fix. Any help is appreciated.
This experiment really isn't necessary, but it's just that, an experiment. I figure, this is my hobby, so why not.
Restl3ss said:
I know, I know. I'm probably gonna get a lot of "it can't be done and this is why" if what I've googled is any indication. However, difficult does not equate to impossible.
Firstly, one of the big messages I encountered online was that windows is not case sensitive, thus it can't be done even if you had a toolchain. However, it's entirely possible to turn windows 100% case sensitive (i've got cygwin mkdir Abc and aBc to prove it)
So to do this, go to control panel / programs / turn windows features on or off.
When opened, check the box that says "subsystem for UNIX-based applications" and hit okay.
Now open a browser window. Download This.
Install it, and on options near the beginning of the install check EVERYTHING.
Reboot at the end of the installation. Windows is now fully case-sensitive.
So now, after repo sync and running through the motions (get-prebuilts, breakfast, extract-files, etc)
I now encounter problem number two. Javac: command not found.
So to get around this, download an unofficial build of openjdk-1.7.0 and manually drop it in cygwin.
So after this, I type brunch d2lte
I now encounter problem number three. Build info comes up but ends abruptly at
bash: schedtool: command not found
or something like that anyway. Googling schedtool reveals information about what it does. So, to get rid of the error message, I create a dummy schedtool binary and drop it in cygwin's bin folder. Doesn't fix the build, but makes that nasty error go away.
So now, both brunch and mka will display build info then return you promptly to the command line with no error. However, what does work is the "make" command.
So, I type make bootimage.
Here comes problem number 4.
I get an error message for build/core/java.mk on line 23, saying my target SDK is invalid (here's my version), (here's available)
or something like that.
So to fix, open build/core/java.mk in notepad++, navigate to line 23, and remove the following
Code:
$(error $(LOCAL_PATH): Invalid LOCAL_SDK_VERSION '$(LOCAL_SDK_VERSION)' \
Choices are: $(TARGET_AVAILABLE_SDK_VERSIONS))
else
After which, your build will move forward to..... error number 5
Code:
make: *** No rule to make target '/home/Swisgaar/android/system/out/host/windows-x86/bin/mkbootimg.exe', needed by '/home/Swisgaar/android/system/out/target/product/d2lte/boot.img'. Stop.
Which i fixed, by downloading a .exe version of mkbootimg and dropping it in system/out/host/windows-x86/bin manually, which you can get from here.
After which, moving on to the next error, and the one i'm currently stuck on,
Code:
make[1]: Entering directory '/home/Swisgaar/android/system/kernel/samsung/d2'
/home/Swisgaar/android/system/kernel/samsung/d2/Makefile:327: /home/Swisgaar/android/system/kernel/samsung/d2/scripts/Kbuild.include: No such file or directory
make: *** empty variable name. Stop.
/home/Swisgaar/android/system/kernel/samsung/d2/Makefile:416: recipe for target 'scripts_basic' failed
make[2]: *** [scripts_basic] Error 2
Makefile:130: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/Swisgaar/android/system/kernel/samsung/d2'
build/core/tasks/kernel.mk:169: recipe for target '/home/Swisgaar/android/system/out/target/product/d2lte/obj/KERNEL_OBJ/.config' failed
make: *** [/home/Swisgaar/android/system/out/target/product/d2lte/obj/KERNEL_OBJ/.config] Error 2
Currently working on a fix. Any help is appreciated.
This experiment really isn't necessary, but it's just that, an experiment. I figure, this is my hobby, so why not.
Click to expand...
Click to collapse
Hey bro you are doing such a good thing for developers so please continue this thread and make some thing new
All the best :good:

Kotlin app can't find file even though it exists

I'm working on a Kotlin app where I need to access the Cookies file located at /data/data/com.android.chrome/app_chrome/Default/Cookies. However, when I try to access the file, I get a "file not found" error, even though the file definitely exists at that location.
I've double-checked the file path and made sure there are no typos (I can see the file with adb shell and Amaze File Manager), and I've also checked that the app has permission to access the file (app has root permissions).
First I was trying to open and read the file directly and I got the error:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
I though maybe Chrome was running so I couldn't open the file directly so I tried copying it to a temp folder and reading that:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
But that still fails:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
Is there anything else I can try to troubleshoot this issue?
Something in the code triggers cloudflare and blocks me from posting
Code:
Sorry, you have been blocked
You are unable to access xda-developers.com
Why have I been blocked?
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7badda7c6b9486c6 • Your IP: Click to reveal • Performance & security by Cloudflare
SQLite definitely won't open the file. So, your decision to copy it was right.
Firstly, try to split the single command string into an array.
The documentation for ProcessBuilder class has an example:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Or try to use SuFile from the libsu, for example:
AndroidIDeditor/Util.java at 6a62bac0e3e63502e9a7b538217f65189ff85fa4 · sdex/AndroidIDeditor
Android Device ID changer. Contribute to sdex/AndroidIDeditor development by creating an account on GitHub.
github.com
lioce said:
SQLite definitely won't open the file. So, your decision to copy it was right.
Firstly, try to split the single command string into an array.
The documentation for ProcessBuilder class has an example:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Or try to use SuFile from the libsu, for example:
AndroidIDeditor/Util.java at 6a62bac0e3e63502e9a7b538217f65189ff85fa4 · sdex/AndroidIDeditor
Android Device ID changer. Contribute to sdex/AndroidIDeditor development by creating an account on GitHub.
github.com
Click to expand...
Click to collapse
Seems like not even like that can I read the Cookies file from Chrome
Code:
fun copyFile(source: String, destination: String) {
Log.d("CookieSwapLogger", "copyFile '$source' to '$destination'")
val sourceFile = SuFile(source)
if (sourceFile.exists()) {
Log.d("CookieSwapLogger", "sourceFile.exists")
} else {
Log.d("CookieSwapLogger", "sourceFile.notExists")
}
---------------
2023-04-21 18:20:47.440 6347-6347 CookieSwapLogger com.david.cookieswapper D copyFile '/data/data/com.android.chrome/app_chrome/Default/Cookies' to '/data/user/0/com.david.cookieswapper/app_temp/Cookies'
2023-04-21 18:20:47.492 6347-6347 CookieSwapLogger com.david.cookieswapper D sourceFile.notExists

Categories

Resources