[DEV] Mobile Android and iPhone wallet app application Developments
-
Keith, or for me who really doesn’t have time to work out how to do all of that, but really needs the wallet app to test something else I’m working on. Is there an option where you can send me the app, I can up load it to my phone and test both it and my new project and report on the results?
-
I have been running the wallet the last couple of days with an update version number, but I haven’t tested out any functions to see if there are any breaking changes between protocol versions. I need to get some time to go though the updates since the last release Hank did.
For people that want to build the source, if you grab the feathercoin wallet app, you also need to download and build the feathercoinj code here:
https://github.com/hank/feathercoinj
and follow the instructions for building. Once you’ve got that installed with maven your be able to build the wallet app.
To change the version number you need to make the change to this file in feathercoinj project:
Hello,
I tried to build feathercoinj but when i execute maven clean package, I have errors such as:
[ERROR] /C:/feathercoin/feathercoinj/core/src/test/java/com/google/feathercoin/core/BlockChainTest.java:[159,43] cannot find symbol
[ERROR] symbol: variable interval
[ERROR] location: variable unitTestParams of type com.google.feathercoin.core.NetworkParameters
And the code athe the line 159 is : for (int i = 0; i < unitTestParams.interval - 1; i++) {
It does not like the “.”
I am fighting against this. I guess I missed something. Did you get this error message ?
Thanks,
-
There is a missing variable definition in the code. I defined the variable, but got more errors in the test area.
If you locate my fork on github and use it, it will compile, but you need to run mvn with -DskipTests, as the test area has tons of errors.
It seems, that the tests have not been adapted for a long time.
My username on github is wellenreiter01, so the fork’s name should be wellenreiter01/feathercoin-wallet
-
Hello,
I tried to build feathercoinj but when i execute maven clean package, I have errors such as:
[ERROR] /C:/feathercoin/feathercoinj/core/src/test/java/com/google/feathercoin/core/BlockChainTest.java:[159,43] cannot find symbol
[ERROR] symbol: variable interval
[ERROR] location: variable unitTestParams of type com.google.feathercoin.core.NetworkParameters
And the code athe the line 159 is : for (int i = 0; i < unitTestParams.interval - 1; i++) {
It does not like the “.”
I am fighting against this. I guess I missed something. Did you get this error message ?
Thanks,
Hi
This is the unit tests in hanks code that are broken, to get around this you need to tell maven to skip the tests. so the command would be ‘mvn clean install -D maven.test.skip=true’
This build the package succesfully for you.
Keith
-
Thanks it worked. I don’t know maven so I am a little bit lost.
Once I did this I tried to compile the wallet with ‘mvn clean install -D maven.test.skip=true’ but it does not work because it needs feathercoinj-0.95-SNAPSHOT.jar
After serveral attempts I solved this error by putting the file in the m2 repository in a folder I had to create repository\com\google\feathercoinj\0.95-SNAPSHOT
Does it have to be done manually or is there another way ?
Even if a put the file there I still have errors:
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources (default-generate-sources) on project wa
llet: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources failed: A required class was missing while executing com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1:generate-sources: Lorg/sonatype/aether/RepositorySystem;
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
…
Did you get this error too ?
Thanks for your help
-
I didn’t have these problems
What I did:
- clone feathercoinj from github to a clean directory
- compile feathercoinj: ‘mvn clean install -DskipTests’ (yes, no space after the -D ;) )
- clone feathercoin-wallet from github
- compile feathercoin-wallet:
- cd to feathercoin-wallet dir
- cd to subdir ‘wallet’
- mvn clean install
This did the job for me, but signing the apk file failed, because jarsigner was asking for an alias.
I signed the apk manually:
- Create a keystore file with ‘keytool’ and define an alias, e.g. feathercoin-wallet
- copy the jarsigner call from the error message provides by the MVN output, starting with jarsigner and skipping the stuff in the beginning of the line.
Done 8)
-
Hi,
You method does not work for me at all :(
If I use the ‘mvn clean install -DskipTests’, it does not skip the tests and I have the ‘cannot fin symbol’ error for feathercoinj
And I have the same error for the feathercoin wallet.
I am not really lucky
Thanks for the help, maybe someone has a better idea ?
-
Ok I finally find solutions.
-
First use It seems I have error with maven 3.1+ but not maven 3.0.5
-
Also I had an error it does not find aapt.exe
To solve this, I had to execute:
cd %ANDROID_HOME%/platform-tools
mklink /H aidl.exe …\build-tools\19.0.0\aidl.exe
mklink /H aapt.exe …\build-tools\19.0.0\aapt.exe- I had also an error with dx.jar. The solution is to search the file in the sdk subdirectory and copy it in %ANDROID_HOME%/platform-tools
I am stuck at the final setp, signing the file beacause jarsigner ask for an alias. Wellenreiter coud you be more explicit please ?
I use eclipse to create a keystore file with a password, an alias (feathercoin-wallet) and a password for the alias
But I don’t understand where I have to put it. First I thought it was in …\m2\repository\org\apache\maven\plugins\maven-jarsigner-plugin\1.3.1
but it does not work
Thanks for the help
-
-
Ok, so your problems where related to the setup of the sdk environment for Android. ;)
The alias for jarsigner is the same you specified when creating the keystore.
So in your case the call to jarsigner should look like
‘jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 ~/workspace/feathercoin-wallet/wallet/target/wallet-1.098.apk feathercoin-wallet’
Adapt the path to the .apk file to match your system.
In Linux the default keystore is the file .keystore in your home directory.
If you defined another keystore file in eclipse, you must tell jarsigner the name of the file as a command parameter.
regards
Wellenreiter
use jarsigner --help to get the right option.
-
Most of my problems was due to maven. It seems the project is not supported by maven 3.1.1 or maven 3.1.2
I was not able to find in the settings of the project where the keystore location is configured. There are variables for the keystore but I did not found where they are initialized.I tried to put the file in the home directoryin windows (C:\users\username\) but it didn’t work. So I sign manually the file.
I try to understand how the whole thing work and I understood that the wallet as 2 parts:
-
feathercoinj that is a Java implementation of the feathercoin protocol, which allows it to maintain a wallet and send/receive transactions
-
feathercoin-wallet that is more the front end
I was wondering when the feathercoin protocole will update to 0.86, does anyone will also improve feathercoinj ?
My other interrogation: does the wallet need to download the whole blockchain and store it on the phone like the desktop version?
Thanks
-
-
Answer to your first question: yes, feathercoinj will be updated by Bushstar and myself
For your second question I need to check.
Also, the Andriod target for the wallet is type 14, which is a tablet, so l’m not sure, if phones are supported with the current version.
Did you check, if playstore provides the wallet, when accessing it from a phone?
-
API level 14 Is just a version of android (Android 4.0). In my opinion, it is a little bit high as min API level because almost 25% of android users still have Android 3.2 or less
But I think the reason is actionbarsherlock needs this API.
Anyway, It works on phone in installed it on Samsung Galaxy SIII.
-
Thanks for the clarification :)
I’m no experienced Android programmer, in fact I started it last week to fix the Android wallet problem.
I have released an App called Feathercoin Wallet 2 on playstore, which is the original Feathercoin wallet for Android plus the fix for the connectivity problem.
It should be available on playstore later today.
The sources are on Github: https://github.com/wellenreiter01/feathercoin-wallet-2
It is agreed with Erik, the Author of the original Feathercoin Wallet for Android, that he takes his version off the playstore and development and support move to us. Erik doesn’t have the bandwidth anymore to support the app.
Contributors are highly welcomed for development and support of the application.
Last, but not least:
I strongly recommend a backup of your private keys or even better to empty your wallet and uninstall the original Feathercoin wallet form Erik, as existing wallet data may be erased during installation!!!
-
I was just wondering if we could make download it from somewhere? the adk file?. I would like to try to test install a compiled version?
Wow, great work, I’ll try it at the Playstore.
I think this is a really interesting project, that we could get community support for. I see a mobile application as essential and I think Bush should consider to make an “official” Git hub, so we can manage and be alert to required changes.
On the other hand it is a lot to maintain the main network, wallet and protocol, so additional responsibilities should be limited to what is achievable.
-
I was just looking to see if the new Feathercoin App had appeared in the playstore. I notice there are some patches to the Android Litecoin App which could be applied.
The Litecoin App has just been updated by Litecoin Devs.
I’ll check out the Github later.
-
A little problem is, that the litecoin build is not the direct upstream for our build, but Erik’s build is. This means there is no easy and direct way to pull the upstream changes into our version.
I don’t know, if there is an easy way to pull changes from the litecoin build, which is the ‘grandfather’ of our build.
May be, someone very familiar with github can suggest what to do here
-
I was wondering:
should we rework the wallet and not have a clone of the litecoin wallet but create our own version ? I don’t want to say anything wrong about the wallet, the one who did it, made a great work but I think it is a little bit obsolete now:
Google suggest to use android studio not Intellj for the application dev
Google suggest to use gradle and not maven
I am not sure whe need anymore actionbarsherlock…
What do you think ?
-
It works.
-
It’s work.
In few second it’s connected to 3 peers.
Thank you very much for support.
-
I was wondering:
should we rework the wallet and not have a clone of the litecoin wallet but create our own version ? I don’t want to say anything wrong about the wallet, the one who did it, made a great work but I think it is a little bit obsolete now:
Google suggest to use android studio not Intellj for the application dev
Google suggest to use gradle and not maven
I am not sure whe need anymore actionbarsherlock…What do you think ?
Well, as feathercoin is based on Litecoin, it can be an advantage that we can just pull fixes through the github chain.
If we create a totally independent wallet, we may ending up to duplicate work, as we may have to implement the same fixes as the litecoin devs, but can’t use their solution easily.Also, the wallet is only the frontend and as long as it is using feathercoinj, there shouln’t be too many fixes needed.
My personal opinion is to keep the wallet as it is.
A workaround to get the possibility to pull changes from the litecoin wallet directly is to create our own fork of thelitecoin wallet and copy all files of our current version into that fork.
This would enable us to pull changes from the litecoin trunk directly.
On the other hand copy/paste is also not a really big problem ;)