text:
PERSONDIR-94: Created new SessionInvalidationSurvivingAdditionalDescr…

…iptors class to replace MediatingAdditionalDescriptors.  New class is more transparent regarding its purpose and addresses issue with request attributes not being available during the login flow due to session invalidation.

:+1:

Update:  In thinking about this more I don't think we need this PR.
The primary issue we were having (trying to pass in a parameter on the request URL and having it be part of the user's attributes in uPortal) was not handled properly.  We were using the org.jasig.services.persondir.support.web.RequestAttributeSourceFilter in personDirectoryContext.xml to try and capture that information.  However the web filter runs before the authentication code runs.  Part of the authentication code in uPortal does a session.invalidate() and session creation so attempting to use RequestAttributeSourceFilter to populate a value that we want to retain 'in session' was not correct since the session was destroyed.
We should instead alter our authentication code so that after the session is destroyed we inspect the request for special parameters or attributes we want to retain in session and not try to work around it as we have above.

Adding some notes here for posterity, in case this is ever revisited:
Below are some additional details needed to fully understand why the SessionInvalidationSurvivingAdditionalDescriptors class was needed and how it differs from MediatingAdditionalDescriptors.  For the history of how MediatingAdditionalDescriptors came about, see:  http://permalink.gmane.org/gmane.comp.java.jasig.uportal/10771
In summary, MediatingAdditionalDescriptors was created because there was a need to use request data (headers, cookies, and/or parameters) to determine group memberships for users.  Using RequestAttributeSourceFilter with a request scoped AdditionalDescriptors bean does not work because the request data needs to be available for the duration of the user's session, not just for a single request or until the cache expires.  However, if instead a session scoped AdditionalDescriptors bean is used, the user's session gets invalidated during the login process, which causes the data in the session scoped bean to be lost, and therefore that data is not available to properly determine the user's group membership (and DLM tabs).
MediatingAdditionalDescriptors addressed this issue by allowing you to use a list of AdditionalDescriptors, which allows you to configuring it to use a session scoped AdditionalDescriptors (first in the listt) in conjunction with a request scoped AdditionalDescriptors (second in the list).  As attributes are added to MediatingAdditionalDescriptors, they are copied to both the session and request scoped beans.  When 'get' methods on MediatingAdditionalDescriptors are called, the code runs through the list of AdditionalDescriptors and returns attributes from the first AdditionalDescriptors that contains a value.  In this case, it would check the session scoped bean first, then fall back to the request scoped bean if the attribute could not be found in the session scoped bean.  With this in place, when the session gets invalidated during login and the session scoped bean gets reaped and replaced with a new empty bean, the values needed are simply returned from the request scoped bean.
However, in the use case that I was dealing with there were attributes being added to the MediatingAdditionalDescriptors during the login process, after session invalidation.  The 'addAttributes' method was being used, which adds the attributes to both the session scoped bean and the request scoped bean.  This, however leaves you in a state where the session scoped bean only contains a subset of the full list of attributes, and the request scoped bean contains the full list.  The problem is then with the 'getAttributes' method, shown below:
public Map<String, List<Object>> getAttributes() {
    for (final IAdditionalDescriptors additionalDescriptors : delegateDescriptors) {
        final Map<String, List<Object>> attributes = additionalDescriptors.getAttributes();
        if (attributes != null && !attributes.isEmpty()) {
            return attributes;
        }
    }
    return Collections.emptyMap();
}

In our scenario, this method returns the attributes from the session scoped bean (because it is the first in the list), even though that bean only contains a subset at this point.  Therefore, the actual attributes needed, which are contained in only the request scoped bean, do not get used during the login process after session validation, and this was affecting the users' DLM tabs displayed.
So, the new SessionInvalidationSurvivingAdditionalDescriptors class does the following:

explicitly states in the class name the purpose of the class (which is better than "MediatingAdditionalDescriptors" which is more general-purpose even though it was created for a single specific purpose and AFAIK is not used for any other puposes)
contains comments that state specifically what the class does and for what use case it is useful
contains explicitly named 'requestScopedAdditionalDescriptors' and 'sessionScopedAdditionalDescriptors' IAdditionalDescriptors fields rather than a generic List which sheds no light on why you would want to use multiple IAdditionalDescriptors in this fashion
for 'set' and 'add' methods, delegates calls to both the request and session scoped beans, to keep them in synch
for 'get' methods, delegates calls to both the request and session scoped beans, and returns the union of the results returned from each
solves the issue we had using MediatingAdditionalDescriptors because, per item 5., the 'getAttributes' method returns the union of results rather than the incomplete results from just the session scoped bean

authors: groybal jameswennmacher mmoayyed

repo: Jasig/person-directory


text:
phpCAS client session ID and crash issue

Once a while, phpCAS:forceAuthentication() crashes (one crash in about 500 times log on)
Did some investigation and found, when phpCAS:forceAuthentication()  crashes, the session ID looks like: c0rjhpihos39mk1hts5pbc84m2
Normally, phpCAS client session ID looks like this after phpCAS client is initiated:
ST-244884-uN4OWqKzd0pcOyeTCE79-cas
Tried to catch the exception message, but it is empty. phpCAS debugging log doesn't have the time stamp. It also impossible to find out the log for crash from huge log file.
Any idea why session ID looks different once a while? and why different session ID causes phpCAS:forceAuthentication() to crash? How can prevent this crash? It is very bad in the log.

No more feedback -> closing

source: gharchive/issue

repo: Jasig/phpCAS

license_type: permissive

license_source: bigquery


text:
SmartLdapGroupStore ContextMapper feature can't be null in the init.crn

Describe the bug
Staying on the attributeMapper inside the SamrpLDAPGroupStore configuration isn't anymore available due to #1989
In the init.crn the ldap-search require that the contextMapper is not null ! and from the groupStore class we can't have the atrributeMapper defined at the same time than the contextMapper.
To Reproduce
Steps to reproduce the behavior:

configure the SamrLdapGroupStrore with the attributemapper only.
deploy and restart the tomcat
connect to uPortal and watch logs - users can't connect

Expected behavior
Cernunnos lib seems buggy and should manage correctly things !
Stacktrace
ERROR [SmartLdap Refresh Worker] o.a.p.g.s.SmartLdapGroupStore 2020-08-18 11:15:54,835 - SmartLdapGroupStore failed to build the groups tree
org.danann.cernunnos.ManagedException: The Cernunnos Runtime encountered an error:
Origin Document:  file:/opt/webapps/uPortal/WEB-INF/classes/org/apereo/portal/groups/smartldap/init.crn
Source:  /with-attribute/ldap-search/@context-mapper
Entity Name:  ${org.danann.cernunnos.AttributePhrase}
at org.danann.cernunnos.runtime.RuntimePhraseDecorator.evaluate(RuntimePhraseDecorator.java:91)
at org.danann.cernunnos.runtime.ConcatenatingPhrase.evaluate(ConcatenatingPhrase.java:77)
at org.danann.cernunnos.runtime.RuntimeReagentDecorator.evaluate(RuntimeReagentDecorator.java:71)
at org.danann.cernunnos.ldap.SearchTask.perform(SearchTask.java:203)
at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:148)
at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:123)
at org.danann.cernunnos.core.SetAttributeTask.perform(SetAttributeTask.java:66)
at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
at org.danann.cernunnos.runtime.ScriptRunner$TaskDecorator.perform(ScriptRunner.java:436)
at org.danann.cernunnos.runtime.ScriptRunner.run(ScriptRunner.java:288)
at org.danann.cernunnos.runtime.ScriptRunner.run(ScriptRunner.java:225)
at org.apereo.portal.groups.smartldap.SmartLdapGroupStore.buildGroupsTree(SmartLdapGroupStore.java:731)
at org.apereo.portal.groups.smartldap.SmartLdapGroupStore.access$200(SmartLdapGroupStore.java:57)
at org.apereo.portal.groups.smartldap.SmartLdapGroupStore$2.run(SmartLdapGroupStore.java:645)
Caused by: java.lang.IllegalArgumentException: The specified attribute is not defined:  contextMapper
Platform:

uPortal Version: uPortal 5.8.2

Additional things
It may be great to watch on moving from cernnunos which is old and not really used now to a groovy script, what do you think  ?

It may be great to watch on moving from cernnunos which is old and not really used now to a groovy script, what do you think ?

I agree, much of the functionality from cernnunos has been superseded by Spring framework.

I think the mapperType should be attribute rather than attributes at https://github.com/Jasig/uPortal/blob/7e8dddaa5be0468fcc5c1d6eb443b44f12ae4d4a/uPortal-groups/uPortal-groups-smartldap/src/main/java/org/apereo/portal/groups/smartldap/SmartLdapGroupStore.java#L721

I think the mapperType should be attribute rather than attributes at https://github.com/Jasig/uPortal/blob/7e8dddaa5be0468fcc5c1d6eb443b44f12ae4d4a/uPortal-groups/uPortal-groups-smartldap/src/main/java/org/apereo/portal/groups/smartldap/SmartLdapGroupStore.java#L721

I'll be looking at this soon. @jgribonvald do you have a work-around?

I'll be looking at this soon. @jgribonvald do you have a work-around?

good question for the mapperType, I didn't seen it !
My work around is in deploying the previous init.crn file with uPortal-start (by override) and keep the attributeMapper conf ;)

good question for the mapperType, I didn't seen it !
My work around is in deploying the previous init.crn file with uPortal-start (by override) and keep the attributeMapper conf ;)

This has been merged into master.

This has been merged into master.

authors: ChristianMurphy bjagg cbeach47 jgribonvald

repo: Jasig/uPortal


text:
Spell Checker as Npm package

It would be really nice to have this project as an npm package.  Then I can hook into pre-commit hooks and prevent people from checking in wrong spelling in the git.

Oops, I just saw this.
It is an NPM package. See https://www.npmjs.com/package/cspell

repo: Jason-Rev/vscode-spell-checker

license: mit


text:
#10005 : Note View 관련 기능 요청

NoteViewController 수정

command = "noteView"

Fields

String id : Session memberVO
boolean isCurr : param (true / false)
( - int diaryNo : param )

Description :
isCurr 파라미터값이 true일 때에는 해당 사용자의 전체 노트리스트(attribute name: notes)와 해당 사용자가 가장 최근 수정한 노트(attribute name: note)를,
isCurr 파라미터값이 false일 때에는 해당 사용자의 전체 노트리스트(attribute name: notes)와 해당 사용자가 요청한 diaryNo 노트(attribute name: note)를 받는 기능이 필요합니다!!

Heading_to : note_view.jsp

민영씨 오후 세시 이전 완료 바랍니다 ~

@owneul-k #00102 COMMIT함

note 전체 list가 세팅되지 않는데 확인부탁드려요~~

@qazwsx2800
Bug at  NoteViewController
[system log] : getCurrDiaryNo() : 19
[system log] : getNoteByNo() : Note [title=null, currentDate=null]
isCurr 파라미터값이 true일 때 가장 최근 수정한 노트(attribute name: note)를 받아오는 과정에서 getCurrDiaryNo() 메소드가 가장 최근 수정한 노트 번호를 받아오는 기능을 수행하지 못함.
-> 가장 최근 작성한 Diary의 no를 받아오고 있음. (Memo일수도 있고 Schedule일수도 있습니다)
가장 최근 수정한(최근 작성이 아니에요!) Note의 no를 받아오는 기능을 별도로 구현해야 할 것 같습니다.


text:
User Authentication

Is your feature request related to a problem? Please describe.
Yes, kind of
Describe the solution you'd like
User Authentication into Gaps.
Describe alternatives you've considered
Not many alternatives
Additional context
I find it an issue to leave Gaps running when anyone can access the page and get my Plex Token and TMDB API key.

Try testing out the ssl or no ssl version to use the login. It auto-generates a unique password in the log file. Username is 'user'.
docker pull housewrecker/gaps:v0.4.0-SNAPSHOT-no-ssl
docker pull housewrecker/gaps:v0.4.0-SNAPSHOT

Enabled in v0.4.0, set a flag in docker run ENABLE_LOGIN=true

When login is enabled, Radarr is unable to connect to the RSS list. Is there a way to have authentication enabled and maintain Radarr's ability to connect to the list?

What version are you using? Are you running Docker? I haven't seen this before so it would be a new bug.

I am on version 0.8.10 in Docker.
Here's what happens if you would like to reproduce the issue. When I try to navigate to my RSS URL (http:///rss//1) when ENABLE_LOGIN is set to true, it redirects me to the login page. As a workaround, I set this to false, let Radarr update the list, then set it back to True once a week however if I can leave the login enabled and have Radarr still connect, that would of course be ideal.

That makes sense. I'm pretty sure I know why that is happening. I'll take a look into it and keep you posted. Thanks for the bug report.

Thank you! Just out of curiosity, should I make a new bug report for this since this one we're commenting on is marked as closed?

Yes, please.

authors: EZarnosky JasonHHouse ssiddiqui87

repo: JasonHHouse/gaps

license: MIT

license_source: github-api


text:
fix the error on "Get workflow"

#42
Adding the missing parameter

Woops, that was my bad.

source: gharchive/pull-request


text:
Won't create more than 1 QR code

I tried to use this module to create 2 QR codes (one for remote control and the other for mealplan.  It does create the 2 QR codes but both QR codes are identical.  That is, they are labeled differently but both point to the last URL in the config file (which in my case is mealplan).  Therefore they both redirect to mealplan URL.
Note, the remote control URL is  address:9090/remote.html, the mealplan url is address:9090/mealplan
The config is shown below
{
module: 'MMM-QR-Remote-Link',
position: 'top_bar',
pages: {0:"top_bar",4: "top_bar"},
config: {
size: 75, // in pixels...height and width are set to this
text: 'MagicMirror Remote',
endpoint: '/remote.html' // must start with a "/"
}
},
{
module: 'MMM-QR-Remote-Link',
position: 'bottom_right',
pages: {0:"bottom_right",4: "bottom_right"},
config: {
size: 75, // in pixels...height and width are set to this
text: 'Weekly Menu Planner',
endpoint: '/mealplan' // must start with a "/"
}
NOTIFICATION  Also when I scan your QR codes in your readme file, they both give me the same URL

Hmmm .  Let me take a look and I’ll get back to you.
Thanks
On Sat, Feb 3, 2024 at 6:25 PM roccamorice @.***> wrote:

I tried to use this module to create 2 QR codes (one for remote control
and the other for mealplan. It does create the 2 QR codes but both QR codes
are identical. That is, they are labeled differently but both point to the
last URL in the config file (which in my case is mealplan). Therefore they
both redirect to mealplan URL.
Note, the remote control URL is address:9090/remote.html, the mealplan url
is address:9090/mealplan
The config is shown below
{
module: 'MMM-QR-Remote-Link',
position: 'top_bar',
pages: {0:"top_bar",4: "top_bar"},
config: {
size: 75, // in pixels...height and width are set to this
text: 'MagicMirror Remote',
endpoint: '/remote.html' // must start with a "/"
}
},
{
module: 'MMM-QR-Remote-Link',
position: 'bottom_right',
pages: {0:"bottom_right",4: "bottom_right"},
config: {
size: 75, // in pixels...height and width are set to this
text: 'Weekly Menu Planner',
endpoint: '/mealplan' // must start with a "/"
}
—
Reply to this email directly, view it on GitHub
https://github.com/JasonVonKrueger/MMM-QR-Remote-Link/issues/2, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AE6SC6KBLXB2PNXOGLQ63JDYR3BOVAVCNFSM6AAAAABCYLYDSGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEYTMNZRGM3DSMI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I don't know how that slipped by QA.  I should fire myself.  Anyway, this is now fixed. Either git pull or grab the two updated .js files from https://github.com/JasonVonKrueger/MMM-QR-Remote-Link.  Please let me know whether that fixed it for you or not.  I'll close this in a few days.

Works great....thanks

authors: JasonVonKrueger roccamorice

repo: JasonVonKrueger/MMM-QR-Remote-Link


text:
Create a separate domain name for Marten

We can host the main website at this domain which will establish as a go to place for users who want to know about Marten, docs, sponsors and everything can be aggregated at one place.

@jokokko bought marten.io 👍

martendb.io or marten.io? I guess it is the former

Right, my bad -martendb.io.

@jokokko will you configure Github pages to use new custom domain?

So the A records are now set.
id 45359
opcode QUERY
rcode NOERROR
flags QR RD RA
;QUESTION
martendb.io. IN A
;ANSWER
martendb.io. 1798 IN A 185.199.109.153
martendb.io. 1798 IN A 185.199.110.153
martendb.io. 1798 IN A 185.199.111.153
martendb.io. 1798 IN A 185.199.108.153
;AUTHORITY
;ADDITIONAL

@jokokko I configured that on the GitHub settings. It's almost working.

Probably some paths to CSS needs to be tweaked. I'll try to have a look at that 👍

typically we also have to add a CNAME record pointing to jasperfx.github.io since Marten is hosted under jasperfx.github.io/marten/ it could pose a problem.

I would suggest that we host the a seperate docs in netlify and then do the DNS settings pointing to it. this way, the existing site will work fine and at some point we can sunset the github.io url

I like the idea of using Netlify. I can try to configure that.

Alright. Once done, I'll update the DNS records (30 min TTL on the current A records)...

@oskardudycz if you to give it a shot go ahead, you can just use a manual deploy for now by dragging dropping the folder in the Netlify deploys page.

@mysticmind I’ll try to configure automatic deployment in the evening  (I did that already for my other pages done in GatsbyJS)

I managed to setup Netlify deploy.
URL: https://lucid-northcutt-013a56.netlify.com/
DNS Record: martendb.io A 104.198.14.52
Or it's possible to use Netlify DNS for the domain (as I did in my other Netlify deployments):

dns1.p02.nsone.net
dns2.p02.nsone.net
dns3.p02.nsone.net
dns4.p02.nsone.net

However, there is still the same issue as with github docs 🙃 It seems that our script is addin marten prefix for the paths. I'm trying to find out how it's done, but I don't know yet. I'll keep you posted. Probably PR will be needed.

I prepared the PR https://github.com/JasperFx/marten/pull/1403 that updates the configuration.
I published already the fixed content to gh-pages-netlify and Netlify.

So as discussed in Gitter, NS records updated...

Thank you. It works! 🏆

I'll also configure additionally https on Netlify when DNS fully propagate.
I think that after reviewing and merging my changes to the build script (https://github.com/JasperFx/marten/pull/1403) we're fine to close that task! 😄

Closed via #1403

since martendb.io is a https site, there are js files and images which are http resulting in mixed content.

@mysticmind I’ll check that and try to provide a fix in a separate PR.

@oskardudycz I have fixed mixed content issue of http links in https. Also found some link and images linking issues in doc pages (already existing issues) which I have fixed as well. I will send a PR shortly.

Closed via https://github.com/JasperFx/marten/issues/1399

authors: jokokko mysticmind oskardudycz

repo: JasperFx/marten


text:
V4 EventProjection

Child of #1610
This is the "do anything you want" option for user-defined projections. It roughly replaces DocumentProjection and the OneForOneProjection in < V4, but it's more flexible.

[x] Support Project(event, IDocumentOperations) conventional methods
[x] Inline Lambda as well
[x] End to end testing
[x] Validate that every method on a Projection class matches the valid conventions

Back tracked this in code today, and I think the test coverage is good as is.

Back tracked this in code today, and I think the test coverage is good as is.


text:
Add nuget badge with version and download count

Replaced the current nuget version badge with one generated by Shield.io that includes version and download.
Closes #1536.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: tonykaralis sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Minor change so went ahead with the merge.

authors: dnfadmin mysticmind tonykaralis


text:
Disregard this.

You see nothing.

Wait a second, wrong branch.

k

authors: CouleeApps JeffProgrammer


text:
Improve schema_registry processors URL support

This change allows users to configure schema registry URLs which have trailing slashes. It's a refinement for #963.

Looks good, thanks @mihaitodor!

authors: Jeffail mihaitodor

repo: Jeffail/benthos


text:
How to correctly get more than one tweet

Hi. I'm facing issues when i'm getting more than one tweet. The maximum number of tweets that i can get is 500 and it tooks like 5 hours to do that. Is there something wrong with my code? How can I get more tweets in less time?
import got
import csv
import unicodecsv as csv

max_tweets = 500

tweetCriteria = got.manager.TweetCriteria().setSince("2017-05-01").setUntil("2017-07-31").setQuerySearch("danonino").setMaxTweets(max_tweets)
# Open/Create a file to append data
csvFile = open('dataset_tweets.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)
for i in range(max_tweets):
    tweet = got.manager.TweetManager.getTweets(tweetCriteria)[i]
    print i
    csvWriter.writerow([tweet.id, tweet.date, tweet.username, tweet.text])

tweet = got.manager.TweetManager.getTweets(tweetCriteria)[i]
This line inside the for loop is the issue. This line returns a list of all the tweets. Your current code is scraping twitter and building that list 500 times.
Move the line outside your for loop and iterate through the tweet object to get same functionality.

Can this be closed?

Thanks now it works very well!

repo: Jefferson-Henrique/GetOldTweets-python


text:
完善Webhook群机器人发送图片信息的重载

可直接通过图片路径发送，封装了计算md5和base64的细节，计算MD5的方法可以考虑移到CO2NET

MD5的方法CO2NET里面已经有了：Senparc.CO2NET.Helpers.EncryptHelper.GetMD5()

不一样的，Senparc.CO2NET.Helpers.EncryptHelper.GetMD5() 这个是string的md5，而这里需要的是Stream的md5（文件流的MD5）

参数 | 必须 | 说明
md5 | true | 图片内容（base64编码前）的md5值

好的，明白了，我会放到下一个正式版本中合并。

@lishewen  CO2NET 已经添加相关方法，单元测试：https://github.com/Senparc/Senparc.CO2NET/commit/4e4049df768eba87160d913654e103ad827577c4

@lishewen 我把方法内部的 stream.Close() 去掉了，因为 stream 对象是外部创建的，关闭最好也还是外部控制，避免黑箱的风险。

authors: JeffreySu lishewen

repo: JeffreySu/WeiXinMPSDK


text:
Failed to run webpack: TypeError: Cannot read property 'reduce' of undefined

Hi,
I am trying to use laravel mix in drupal 8 and I am getting following error:

node -v = v4.2.6

It was not an issue, I was occurring because I commented following lines
mix.js('resources/js/app.js', 'js/app.js')
.sass('resources/sass/app.scss', 'css/app.css');
in my webpack.mix.js.

repo: JeffreyWay/laravel-mix


text:
error in (fmax)

In my robot arm simulation, with ROS melodic with Gazebo 9.0, I found that one of the joints wasn't holding position, always being pulled down, only happened to this one joint.
I changed the PID values, velocity values and max force values but the joint was still not behaving as it should.
I also noticed an error when launching my robot in Gazebo

[Err] [ODEJoint.cc:504] SetParam(fmax) boost any_cast error:boost::bad_any_cast: failed conversion using boost::any_cast

Looking at the Gazebo's Setting Velocity on Joints and Links  states:

Note The value parameter must have exactly the right type. Joint motors require setting double parameters. This call will work joint->SetParam('fmax', 0, 0.0) while this will have a runtime error joint->SetParam('fmax', 0, 0).

Looking at the plugin in gazebo_joint_control/src/GazeboJointControl.cpp
https://github.com/JenniferBuehler/joint-control-pkgs/blob/6db7d2447054622712690669036a256432fd7ba2/gazebo_joint_control/src/GazeboJointControl.cpp#L202
max_force is defined as float
my solution was to cast to double in line 222
https://github.com/JenniferBuehler/joint-control-pkgs/blob/6db7d2447054622712690669036a256432fd7ba2/gazebo_joint_control/src/GazeboJointControl.cpp#L222
joint->SetParam("fmax", 0, (double) max_force);
I am not sure if this is an error or if it is only for my robot configuration

Hi, thanks for reporting this!
So if you cast to double, does the error message go away, and do things then work as expected?
Are you using a velocity, position or effort PID controller?

As far as I have tested both position and velocity work as expected (didn't test for effort controller), and there is no error message.
On another note: changing the PID values with position and velocity control seems to have little, or none, effect in the motion(?)

After a literal ETERNITY, I finally got around to do this. The fix works, and has been merged. Thanks for reporting :)

repo: JenniferBuehler/joint-control-pkgs


text:
Missing US symbols

Hello,
I found these US stocks missing from "united_states.json"
diff.txt
They seems active based on my broker.
Cheers

Kind of need to re-run the whole database and remove some restrictions I placed. It is difficult to capture truly all available symbols and companies. I need to think about using functionality like Threading or Multi Core processing to speed up the process.
For now I am closing this issue and will include these tickers in a future version.

Database updated! All your symbols are included. Please update to FinanceDatabase >= 0.1.9 to use the new database.

repo: JerBouma/FinanceDatabase


text:
Add stock exchange and price to available_companies

Nice library. I propose expaning what available_companies returns, especially to get it to return the stock exchange also, so tickers can be filtered by exchange.

Thank you for the suggestion, I included it in the code. Not much of a reason to not include the exchange if it is already in the source. Also wanted to add the sector and industry however that is not as readily available and takes a long time to gather. I do have this available here.

repo: JerBouma/FundamentalAnalysis


text:
🛑 Moodle Escuela Técnica Valentín Virasoro is down

In 7fe9b22, Moodle Escuela Técnica Valentín Virasoro (https://moodle.evirasoro.edu.ar) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Moodle Escuela Técnica Valentín Virasoro is back up in 6976247 after 11 days, 21 hours, 6 minutes.


text:
🛑 App administrativa Concejo Deliberante de Ushuaia is down

In d51f305, App administrativa Concejo Deliberante de Ushuaia (http://waia.uswgestion.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: App administrativa Concejo Deliberante de Ushuaia is back up in ce659ab after 1 hour.


text:
[Question] Validate end date must greater than the start time

Hi,
I have two parameters to query data in this time range. I'd like to validate the end time must greater than the start time. I'm not sure the approach is good or not. RuleFor for the object itself is accord with FluentValidation design?
RuleFor(x => x.StartTime).NotEmpty();
RuleFor(x => x.EndTime).NotEmpty();
RuleFor(x => x).Must(x => x.EndTime == default(DateTime) || x.StartTime == default(DateTime) || x.EndTime > x.StartTime)
        .WithMessage("EndTime must greater than StartTime");

Thanks :)

Sure, that's a perfectly supported scenario.

Thanks a lot.

authors: JeremySkinner qazq

repo: JeremySkinner/FluentValidation


text:
Show value of invalid item in list of PropertyValidator

I have made a DuplicateValidator, to check if a certain string occurs more than once in a list of strings. I would like to know how to configure my validator, in order to be able to display the string that is duplicate. The PropertyValue will display the entire List, I'm not sure if I can set this up using the PropertyValidator.
       public class DuplicateValidator<T> : PropertyValidator
       {
        public DuplicateValidator() : base("The {PropertyName} is duplicated for value {PropertyValue}")
        {
        }

        protected override bool IsValid(PropertyValidatorContext context)
        {
            List<T> values = (List<T>)context.PropertyValue;

            var allUnique = true;

            foreach (var item in values)
            {
                var number = values.Count(f => EqualityComparer<T>.Default.Equals(f, item));
                if (number > 1)
                    allUnique = false;
            }

            return allUnique;
            }
          }

Use a custom placeholder instead of {PropertyValue} and then add in the value you want to show within the  IsValid  method. You can see an example of using a custom placeholder inside the FV source. Here's an example: https://github.com/JeremySkinner/FluentValidation/blob/master/src/FluentValidation/Validators/LengthValidator.cs#L68

authors: JeremySkinner nelisbraems


text:
IGN metadata not finding anything

When clicking on a specific game. Then edit. Then download metadata and choose the IGN metadata nothing shows up. It cannot find any game no matter what I type in.
If I download metadata to my whole library it cannot find anything IGN related.

Fixed in 0.3.3

authors: Jeshibu OctoLiam

repo: Jeshibu/PlayniteExtensions


text:
Jesus Christ, Jess

That's how you're so quick on the draw with the rips. Always wondered. Love this, thanks for putting this out. <3

🙏 <3 glad to see someone has found this

authors: Jess-Doit jmpavlick

repo: Jess-Doit/jess-doit-archive-engine


text:
🛑 Therminer Sandbox App is down

In c431b26, Therminer Sandbox App (https://appsandbox.therminer.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Therminer Sandbox App is back up in 510bf6c after 32 minutes.

repo: JesusRosaB/TherminerStatus


text:
3.4.0 -> v4 (Breaking changes were introduced)

Before you create the issue

If you're using an EAP, try with a stable version. If that works, please mention it in the issue along with both versions
Please search the existing issues before opening a new issue
Review the developer guide

Describe the bug
Breaking change introduced with v4
To Reproduce
This is how it looks like after upgrading to 4

.graphqlconfig

Expected behavior
version 3.4 everything is working fine

Version and Environment Details
Operation system: mac os ventura
IDE name and version: intellij idea 2022.3.2
Plugin version: 4 onwards
Additional context
Rolling back to 3.4 fixes everything

Had the same issue, it fixes it self automatically after switching to .yml config file

@vepanimas I just tried your solution and it worked perfectly.
Sorry for the very late reply as I might have overlooked this issue.
Again, thank you so much!

repo: JetBrains/js-graphql-intellij-plugin


text:
Add Faculdade Famart

Add Faculdade Famart

@paulojuniorfamart Pull request merged. Thank you!

authors: paulojuniorfamart philipto

repo: JetBrains/swot


text:
IULI

https://www.iuli.ac.id/

Here are the university profile registered in Government of Indonesia
https://pddikti.kemdikbud.go.id/data_pt/N0VEODM0MDEtMjg2Mi00RTEyLUFBNjAtNzlERUZFN0I5MEE4
(in bahasa)


text:
Adding SFU

Adding Sigmund Freud University in Vienna: https://en.wikipedia.org/wiki/Sigmund_Freud_University_Vienna

@rherman9 Pull request merged. Thank you!

@rherman9 After the pull request has been merged are you able to create an account with your university email id?

@rherman9 After the pull request has been merged are you able to create an account with your university email id?

yes I did, thank you.


text:
Add Faculdade Descomplica file

Add Faculdade Descomplica.
Add Descomplica College.

@natanvittorino Thank you for your patience while waiting for a review and processing your request. Pull request merged. Thank you!

authors: natanvittorino philipto


text:
Added Mediadesign Hochschule

student domain

@sdenkhaus the main domain covers all subdomains so no need for this entry

authors: sdenkhaus zweizwei


text:
Adding Education Email for Verona Trento High School

Greetings,
I am doing this pull request to have access to the educational contract for the email of Verona Trento High School.

@notapapirica First stage of verification passed, official domain is veronatrento.it as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@notapapirica Thank you for your patience while waiting for a review and processing your request. Pull request merged.

authors: notapapirica philipto


text:
SJDELMONTE.STI.EDU.PH have to create PR all over again this until it merges.

Institution/School Name
{Name Here}
Instiution/School Website
https://www.sti.edu/
Email Users
raymundo.gatacelo@sjdelmonte.sti.edu.ph
Please place an x between the square brackets if yes

[ ] Students
[x ] Academic/Teaching Staff
[ ] Other/Support Staff
[ ] Alumni

Education Levels
Please place an x between the square brackets if yes

[ ] Post-graduate research
[ ] Graduate School
[x ] College (University) or Undergraduate School or equivalent
[ ] Community College or equivalent
[ ] High School or equivalent
[ ] Elementary School or equivalent

@gatzCooper I have to close this request without merging, because you requested to add a non-existent domain to this repository: ;; connection timed out; no servers could be reached Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!

authors: gatzCooper philipto


text:
Add files via upload

yey!

@mrschn I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host aics.edu not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!

authors: mrschn philipto


text:
Add Superior Collegiate & Vocational Institute(a Canadian high school in Thunder Bay)

Hello,
Superior Collegiate& Vocational Institute is a Canadian high school in Thunder Bay (lakehead district).The schools including universities in Canada do not use the domin name ".edu", instead, they all use the domin name of "schoolname.ca", so these schools do not meet your requirement. The information is available on its website. Please kindly add the school on your list so that  I can register as a student.
Thank you for you time and support.
Regards

@NAIQLLIW The first verification stage is complete: the official domain for  Superior Collegiate & Vocational Institute is superior.lakeheadschools.ca, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: https://superior.lakeheadschools.ca/student-services/career-planning-resources/

authors: NAIQLLIW philipto


text:
Add Liceo Benedetto Croce - Palermo

This school in Italy, Palermo, has a STEAM address where different aspects of computer science are studied.
The teachers' emails are: nome.cognome@liceocroce.it
Those of the students: nome.cognome.studente@liceocroce.it

This the program (in Italian language): https://www.liceocroce.edu.it/index.php/dipartimenti/53-dipartimento-informatica/2351-dipartimento-di-informatica
This is the PTOF a document describing the whole high-school vision and goals for three years describing the STEAM approach and computer science role: https://www.liceocroce.edu.it/images/allegati/2021-2022/PTOF_TRIENNIO_22-25.pdf
Let me know if anything else is needed.

@luca-trigili Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.

authors: luca-trigili philipto


text:
Adding Phranakhon Si Ayutthaya Rajabhat University

Phranakhon Si Ayutthaya Rajabhat University
https://www.aru.ac.th

@nsru-napadon Pull request merged. Thank you!

authors: nsru-napadon philipto


text:
Refers to the Testbench set up on the Testing page

According to this issue #119
This PR refers to the Testbench set up on the Testing page.

Thanks 👍

Thanks 👍

You're welcome ❤


text:
onSave moves the cursour to the start of editor

I'm using it on firefox dev edition. when onSave function is called
this.editor.onSave = function (contents, core) {
  console.log('Contents.onSave: ', contents)
   that.currentArticleObj.article.content = contents;
   that.saveArticle();
}

I want the cursor  to remain where it was before onSave is called.

this.editor.onSave = function (contents, core) {
  console.log('Contents.onSave: ', contents)
   that.currentArticleObj.article.content = contents;
   that.saveArticle();
  core.focus();
}


text:
train on a custom dataset

hi! thanks for sharing your work :)
i am trying to train using a custom dataset, with only 1 class. i keep getting the following error, i believe it's because the number of classes is different from coco:
2020-11-10 18:53:53,782 - mmdet - INFO - load model from: open-mmlab://resnet50_caffe
2020-11-10 18:53:53,868 - mmdet - WARNING - The model and loaded state dict do not match exactly

unexpected key in source state_dict: conv1.bias, layer1.0.conv1.bias, layer1.0.conv2.bias, layer1.0.conv3.bias, layer1.0.downsample.0.bias, layer1.1.conv1.bias, layer1.1.conv2.bias, layer1.1.conv3.bias, layer1.2.conv1.bias, layer1.2.conv2.bias, layer1.2.conv3.bias, layer2.0.conv1.bias, layer2.0.conv2.bias, layer2.0.conv3.bias, layer2.0.downsample.0.bias, layer2.1.conv1.bias, layer2.1.conv2.bias, layer2.1.conv3.bias, layer2.2.conv1.bias, layer2.2.conv2.bias, layer2.2.conv3.bias, layer2.3.conv1.bias, layer2.3.conv2.bias, layer2.3.conv3.bias, layer3.0.conv1.bias, layer3.0.conv2.bias, layer3.0.conv3.bias, layer3.0.downsample.0.bias, layer3.1.conv1.bias, layer3.1.conv2.bias, layer3.1.conv3.bias, layer3.2.conv1.bias, layer3.2.conv2.bias, layer3.2.conv3.bias, layer3.3.conv1.bias, layer3.3.conv2.bias, layer3.3.conv3.bias, layer3.4.conv1.bias, layer3.4.conv2.bias, layer3.4.conv3.bias, layer3.5.conv1.bias, layer3.5.conv2.bias, layer3.5.conv3.bias, layer4.0.conv1.bias, layer4.0.conv2.bias, layer4.0.conv3.bias, layer4.0.downsample.0.bias, layer4.1.conv1.bias, layer4.1.conv2.bias, layer4.1.conv3.bias, layer4.2.conv1.bias, layer4.2.conv2.bias, layer4.2.conv3.bias

i changed the config file with the path to my dataset, which is in coco format.
should i do something else or are this changes enough? apparently the training is running fine.
thanks in advance!

@amaanda Thanks for interests. Maybe num_classes should be 2, including objects and background.

thanks for the quick reply! =)
hm i see. my dataset contains only one class, do you consider background as a class inside your code or should i edit my json to include this class?

i just tried running by only changing num_classes to 2 but i keep getting my losses = nan. so i guess it's the second option then?

@amaanda Usually, donot need to change json.

ok. thanks once again!

Hey I am having the same issue but I my class number seems to be correct and the json seems file.
My config:
# model settings
model = dict(
    type='SipMask',
    pretrained='open-mmlab://resnet50_caffe',
    backbone=dict(
        type='ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        norm_cfg=dict(type='BN', requires_grad=False),
        style='caffe'),
    neck=dict(
        type='FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        start_level=1,
        add_extra_convs=True,
        extra_convs_on_inputs=False,  # use P5
        num_outs=5,
        relu_before_extra_convs=True),
    bbox_head=dict(
        type='SipMaskHead',
        num_classes=2,
        in_channels=256,
        stacked_convs=3,
        feat_channels=256,
        strides=[8, 16, 32, 64, 128],
        loss_cls=dict(
            type='FocalLoss',
            use_sigmoid=True,
            gamma=2.0,
            alpha=0.25,
            loss_weight=1.0),
        loss_bbox=dict(type='IoULoss', loss_weight=1.0),
        loss_centerness=dict(
            type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),
        center_sampling=True,
        center_sample_radius=1.5))
# training and testing settings
train_cfg = dict(
    assigner=dict(
        type='MaxIoUAssigner',
        pos_iou_thr=0.5,
        neg_iou_thr=0.4,
        min_pos_iou=0,
        ignore_iof_thr=-1),
    allowed_border=-1,
    pos_weight=-1,
    debug=False)
test_cfg = dict(
    nms_pre=200,
    min_bbox_size=0,
    score_thr=0.03,
    nms=dict(type='nms', iou_thr=0.5),
    max_per_img=10)
# dataset settings
dataset_type = 'CocoDataset'
data_root = './dateset/blob/'
img_norm_cfg = dict(
    mean=[102.9801, 115.9465, 122.7717], std=[1.0, 1.0, 1.0], to_rgb=False)
data = dict(
    imgs_per_gpu=8,
    workers_per_gpu=2,
    train=dict(
        type=dataset_type,
        ann_file=data_root + 'train/annotations.json_coco.json',
        img_prefix=data_root + 'train/',
        img_scale=(1200, 1200),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0.5,
        with_mask=True,
        with_crowd=False,
        with_label=True,
        with_track=True
    ),
    val=dict(
        type=dataset_type,
        ann_file=data_root + 'valid/annotations.json_coco.json',
        img_prefix=data_root + 'valid/',
        img_scale=(1200, 1200),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0,
        with_mask=True,
        with_crowd=False,
        with_label=True
    ),
    test=dict(
        type=dataset_type,
        ann_file=data_root + 'test/annotations.json_coco.json',
        img_prefix=data_root + 'test/',
        img_scale=(1200, 1200),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0,
        with_mask=False,
        with_label=False,
        test_mode=True
    )
)

# optimizer
optimizer = dict(
    type='SGD',
    lr=0.005,
    momentum=0.9,
    weight_decay=0.0001,
    paramwise_options=dict(bias_lr_mult=2., bias_decay_mult=0.))
optimizer_config = dict(grad_clip=None)
# learning policy
lr_config = dict(
    policy='step',
    warmup='linear',
    warmup_iters=1000,
    warmup_ratio=1.0 / 80,
    step=[8, 11])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
    interval=50,
    hooks=[
        dict(type='TextLoggerHook'),
        # dict(type='TensorboardLoggerHook')
    ])
# yapf:enable
# runtime settings
total_epochs = 12
device_ids = [0]
#dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './dataset/blob/result/'
load_from = './models/vis_sipmask_ms_1x_final.pth'
resume_from = None
workflow = [('train', 1)]

I am tryinng on a single gpu:
        {
            "name": "Train model",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\tools\\train.py",
            "console": "integratedTerminal",
            "args": [
                "configs\\sipmask\\sipmask_r50_caffe_fpn_gn_ms_1x_blob.py",
                "--validate",
                "--launcher=none"
            ]
        },

What am I doing wrong? Thanks in advance.

I managed to convert my data to RLE but I cannot train the modell still.
Exception has occurred: TypeError
forward_train() missing 3 required positional arguments: 'ref_img', 'ref_bboxes', and 'gt_pids'
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\models\detectors\base.py", line 86, in forward
    return self.forward_train(img, img_meta, **kwargs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\core\fp16\decorators.py", line 49, in new_func
    return old_func(*args, **kwargs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 38, in batch_processor
    losses = model(**data)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 221, in _non_dist_train
    runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 60, in train_detector
    _non_dist_train(model, dataset, cfg, validate=validate)
  File "D:\Repos\SipMask\SipMask-VIS\tools\train.py", line 106, in main
    logger=logger)
  File "D:\Repos\SipMask\SipMask-VIS\tools\train.py", line 110, in <module>
    main()

@JialeCao001 Any ideas?

@Traderain I cannot get your point. What is your final error?

I managed to convert my data to RLE but I cannot train the modell still.
Exception has occurred: TypeError
forward_train() missing 3 required positional arguments: 'ref_img', 'ref_bboxes', and 'gt_pids'
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\models\detectors\base.py", line 86, in forward
    return self.forward_train(img, img_meta, **kwargs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\core\fp16\decorators.py", line 49, in new_func
    return old_func(*args, **kwargs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 38, in batch_processor
    losses = model(**data)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 221, in _non_dist_train
    runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
  File "D:\Repos\SipMask\SipMask-VIS\mmdet\apis\train.py", line 60, in train_detector
    _non_dist_train(model, dataset, cfg, validate=validate)
  File "D:\Repos\SipMask\SipMask-VIS\tools\train.py", line 106, in main
    logger=logger)
  File "D:\Repos\SipMask\SipMask-VIS\tools\train.py", line 110, in <module>
    main()

@JialeCao001 Any ideas?

@JialeCao001 This is the final issue. My annotations are ms coco (rle)

@Traderain dataset_type = 'CocoDataset' should be changed to dataset_type = 'YTVOSDataset'

So this cant be trained with ms coco?
On 2020. Dec 4., Fri at 2:56, Jiale Cao notifications@github.com wrote:

@Traderain https://github.com/Traderain dataset_type = 'CocoDataset'
should be changed to dataset_type = 'YTVOSDataset'
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JialeCao001/SipMask/issues/26#issuecomment-738504604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQ5LVFAN3BOJW4IHSQRGVTSTA6UVANCNFSM4TRBJVMA
.

@Traderain For image instance segmentation, you can use coco-style annotations with SipMask-benchmark or SipMask-mmdet. For video instance segmentation, Sipmask-VIS only supports the yotube-vis style annotations.

authors: JialeCao001 Traderain amaanda


text:
Cannot find 'asar' module OSX

Hello, I was trying to install this with install.sh on Terminal, yet it keeps coming up with "Error: Cannot find module 'asar'"
Asar is quite obviously there, under the node_modules folder. Here is the error message:
Name-iMac:~ Name$ /Users/Name/Downloads/BD0.2.8OSX-2/install.sh ; exit;
module.js:327
    throw err;
    ^

Error: Cannot find module 'asar'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/Users/Name/index.js:7:12)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Using an iMac (Mid-2011) with default specs.
Thanks in advance :P

What happens if you cd betterdiscord && node index.js from the command line instead of executing the bash file?

That should work. The install.sh script just runs node index.js without changing the directory first.

authors: BudderCreeperMan kurisubrooks mattbox

repo: Jiiks/BetterDiscordApp


text:
Introduce graded-lexical order for monomial

Split from #143

This cannot sort user input in desired order. This feature serves no purpose.

repo: Jij-Inc/ommx


text:
update to latest #BenchmarkDotNet version

Hello!
You have  reported a bug in BenchmarkDotNet repo.
I have now fixed it. The problem is that we will not ship next version soon, so I added link to our development feed to use the latest dll with the fix.
Extras:

BenchmarkSwitcher can accept Assembly now so you don't need to mess with the reflection on your own
I added an assembly-wide config for you, so if you want to use some Diagnosers you just need to uncomment the corresponding code (I noticed your comments left in the code which said that it did not work before)

Best regards,
Adam

Thanks for this! Great stuff, I'll give it a test asap.

@JimBobSquarePants Most probably it was impossible to download the nuget containing fix from our CI feed (we were publishing nuget with same version and it was not getting overriden). I updated the code, hope it will work for you now. Sorry for the trouble!
Sample results I got:

Host Process Environment Information:
BenchmarkDotNet-Dev.Core=v0.9.8.0
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-4700MQ CPU 2.40GHz, ProcessorCount=8
Frequency=2338333 ticks, Resolution=427.6551 ns, Timer=TSC
CLR=MS.NET 4.0.30319.42000, Arch=64-bit RELEASE [RyuJIT]
GC=Concurrent Workstation
JitModules=clrjit-v4.6.1055.0

Type=ColorEquality  Mode=Throughput  GarbageCollection=Concurrent Workstation

                      Method |     Median |    StdDev | Scaled | Scaled-SD |    Gen 0 | Gen 1 | Gen 2 | Bytes Allocated/Op |

-------------------------------- |----------- |---------- |------- |---------- |--------- |------ |------ |------------------- |
System.Drawing Color Equals | 47.5207 ns | 3.5238 ns |   1.00 |      0.00 | 1,692.00 |     - |     - |              18,92 |
ImageProcessorCore Color Equals | 20.4920 ns | 0.5208 ns |   0.43 |      0.03 |        - |     - |     - |               0,00 |

@adamsitnik Ah excellent! I've been desperate to get the diagnostics stuff running. I'm gonna pull all this in now that it looks ready. Thanks so much! :smile:

authors: JimBobSquarePants adamsitnik

repo: JimBobSquarePants/ImageProcessor


text:
Camera crashing in Android 11

Stack Trace:
Java.Lang.RuntimeException: set display orientation failed
  at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0008e] in <1959115d56f8444789986cf39185638c>:0
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0001f] in <1959115d56f8444789986cf39185638c>:0
  at Android.Hardware.Camera.SetDisplayOrientation (System.Int32 degrees) [0x00018] in /Users/builder/azdo/_work/2/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-30/mcw/Android.Hardware.Camera.cs:5039
  at GoogleVisionBarCodeScanner.CameraPreview.SetOrientation () [0x0003d] in <929ca9ff04df47ad86680b7a3455a351>:0
  at GoogleVisionBarCodeScanner.CameraPreview.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00043] in <929ca9ff04df47ad86680b7a3455a351>:0
  at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00008] in /Users/builder/azdo/_work/2/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-30/mcw/Android.Views.ViewGroup.cs:3873
  at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.43(intptr,intptr,bool,int,int,int,int)
  --- End of managed Java.Lang.RuntimeException stack trace ---
java.lang.RuntimeException: set display orientation failed
	at android.hardware.Camera.setDisplayOrientation(Native Method)
	at crc6406d57bc67a4dd4fc.CameraPreview.n_onLayout(Native Method)
	at crc6406d57bc67a4dd4fc.CameraPreview.onLayout(CameraPreview.java:62)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at crc643f46942d9dd1fff9.ViewRenderer_2.n_onLayout(Native Method)
	at crc643f46942d9dd1fff9.ViewRenderer_2.onLayout(ViewRenderer_2.java:47)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
	at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_onLayout(Native Method)
	at crc643f46942d9dd1fff9.Platform_DefaultRenderer.onLayout(Platform_DefaultRenderer.java:72)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
	at crc643f46942d9dd1fff9.Platform_DefaultRenderer.n_onLayout(Native Method)
	at crc643f46942d9dd1fff9.Platform_DefaultRenderer.onLayout(Platform_DefaultRenderer.java:72)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
	at crc643f46942d9dd1fff9.PageRenderer.n_onLayout(Native Method)
	at crc643f46942d9dd1fff9.PageRenderer.onLayout(PageRenderer.java:72)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:37)
	at crc64720bb2db43a66fe9.Platform_ModalContainer.n_onLayout(Native Method)
	at crc64720bb2db43a66fe9.Platform_ModalContainer.onLayout(Platform_ModalContainer.java:53)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at crc643f46942d9dd1fff9.PlatformRenderer.n_onLayout(Native Method)
	at crc643f46942d9dd1fff9.PlatformRenderer.onLayout(PlatformRenderer.java:63)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at com.android.internal.policy.DecorView.onLayout(DecorView.java:1225)
	at android.view.View.layout(View.java:24475)
	at android.view.ViewGroup.layout(ViewGroup.java:7383)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4260)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3695)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2618)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9971)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
	at android.view.Choreographer.doCallbacks(Choreographer.java:809)
	at android.view.Choreographer.doFrame(Choreographer.java:744)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:246)
	at android.app.ActivityThread.main(ActivityThread.java:8587)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

I have an app that uses Prism that has a TabbedPage. From the tabpage I'm opening a page with the BarcodeScanner and then from there I'm opening another page and from there I'm accessing MediaPicker.CaptureAsync to open Camera app for capturing a picture. When I'm returning to the page after clicking the picture, I'm getting this crash

Same issue here - only on pre-version 6.0.0.2. Why is there no code pushed to repository for version 6.0.0.2? Only nuget package available.
Issue ocures also on sample android app if you use nuget package pre-6.0.0.2 from nuget.org.

Well I'm using 5.0.0.8 and i'm getting this crash. So i can confidently say it's an existing issue of the library and not specific to 6.0.02 pre.

Please provide a sample project for debugging, I didn't use Prism.

Here's a sample. I have replicated my project structure in this sample project as well.
A Think to note that the issue is not easy to reproduce. It doesn't happens always. It happens out of nowhere. You might have to go through the flow multiple times in order to reproduce it.
https://github.com/abhinashpati/BarcodeSample
@petrdrabek If you have any better and easy way to reproduce this issue, please let @JimmyPun610 know. And as @petrdrabek mentioned that this issue also occurs in the sample, may be you can try to reproduce it with that.

@abhinashpati I'm experiencing diferent issue than you, sorry. It occures only with direct ML Kit using (v6+) I will desribe it with detail explanation and sample app soon.

Here's a sample. I have replicated my project structure in this sample project as well.
A Think to note that the issue is not easy to reproduce. It doesn't happens always. It happens out of nowhere. You might have to go through the flow multiple times in order to reproduce it.
https://github.com/abhinashpati/BarcodeSample
@petrdrabek If you have any better and easy way to reproduce this issue, please let @JimmyPun610 know. And as @petrdrabek mentioned that this issue also occurs in the sample, may be you can try to reproduce it with that.

Hi,
I have just tested several times with my Pixel 3 and it looks nothing happen.
But for investigating the issue, it should not be related to Prism but Android Camera.
The error should be come from GoogleVisionBarCodeScanner.CameraPreview.SetOrientation
    public void SetOrientation()
        {

            Android.Hardware.Camera camera = Methods.GetCamera(_cameraSource);
            camera?.StopPreview();
            switch (_windowManager.DefaultDisplay.Rotation)
            {
                case SurfaceOrientation.Rotation0:
                    camera?.SetDisplayOrientation(90);
                    break;
                case SurfaceOrientation.Rotation90:
                    camera?.SetDisplayOrientation(0);
                    break;
                case SurfaceOrientation.Rotation180:
                    camera?.SetDisplayOrientation(270);
                    break;
                case SurfaceOrientation.Rotation270:
                    camera?.SetDisplayOrientation(180);
                    break;
            }
            camera?.StartPreview();
        }

I would suggest you move to version 6+ which is switched to CameraX if it is possible.
I have also uploaded the version 5.0.9 which added camera.StopPreview() and camera.StartPreview() and hopefully this could be fixed.

Unfortunately, V5.0.9 Doesn't fix it. I'll try to v6 and to see if CameraX fixes this bug.

FATAL UNHANDLED EXCEPTION: System.ArgumentException: Handle must be valid.

Hi,
If the navigation flow of your app is the same as the sample you provided, which is

Click start scanning in landing page
Go to barcode scanning page
go to next page
click use camera to open the camera to take photo.

I suggest you pop the barcode scanning page (which include the camera view) before pushing the next page, which should be

Click start scanning
open scanning page and scan
get the scanning result, pop the scanning page first, and then push the camera page

@abhinashpati That is exactly the error I was facing too. I already find solution. @JimmyPun610 I will do push request soon.

Hi @petrdrabek
Thank you for helping.
Just pull the request and publish the new version 6.1.0.1-pre.
Hi @abhinashpati
Let see if the problem still exist with the 6.1.0.1-pre.

I can confirm the Crash FATAL UNHANDLED EXCEPTION: System.ArgumentException: Handle must be valid is fixed but not the black screen issue :(

I'm also facing the black screen issue now.
The camera turns extremely dark and don't recongnize anything on certain device.
Looks like it always happens on Android 11.

For black screen issue, it may related to RequestFPS paramenter. Do not set it and the device will take default.
maybe related to #101

authors: JimmyPun610 abhinashpati naokiyoshidassi petrdrabek


text:
Cannot run example project

Hi!
I'm currently trying to have a local version of rn-cryptopp that I can work. I'm trying to run the example project on the latest commit:
git clone https://github.com/JiriHoffmann/react-native-cryptopp.git
cd react-native-cryptopp
yarn install
yarn run prepare
cd example
yarn install
chmod +x ./android/gradlew # don't know why I need to do that
yarn run android

it fails with the following stacktrace:
example git:(main) yarn run android
yarn run v1.22.17
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 893 file(s) to forward-jetify. Using 4 workers...
info Starting JS server...
info Installing the app...

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: spawn ./gradlew EACCES
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
    at onErrorNT (node:internal/child_process:477:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
info Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
➜  example git:(main) yarn run android
yarn run v1.22.17
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 893 file(s) to forward-jetify. Using 4 workers...
info Starting JS server...
info Installing the app...

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: spawn ./gradlew EACCES
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
    at onErrorNT (node:internal/child_process:477:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
info Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
➜  example git:(main) yarn run android
yarn run v1.22.17
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 893 file(s) to forward-jetify. Using 4 workers...
info JS server already running.
info Installing the app...

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: spawn ./gradlew EACCES
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
    at onErrorNT (node:internal/child_process:477:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
info Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
➜  example git:(main) chmod +x ./android/gradle
➜  example git:(main)
➜  example git:(main) chmod +x ./android/gradlew
➜  example git:(main) ✗ yarn run android
yarn run v1.22.17
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 893 file(s) to forward-jetify. Using 4 workers...
info JS server already running.
info Installing the app...
Starting a Gradle Daemon (subsequent builds will be faster)

> Configure project :reactnativecryptopp
WARNING:: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
WARNING:: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/03 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/03 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/03 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/03 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
WARNING:: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/03 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/03 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01

> Task :react-native-blob-util:compileDebugJavaWithJavac

> Task :react-native-image-crop-picker:compileDebugJavaWithJavac

> Task :app:compileDebugJavaWithJavac

> Task :reactnativecryptopp:externalNativeBuildDebug
Build rncryptopp_armeabi-v7a
ninja: Entering directory `/Users/timothee/ExternalProjects/react-native-cryptopp/android/.cxx/cmake/debug/armeabi-v7a'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:143: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:151: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:164: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:172: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:185: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:193: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:206: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:214: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:227: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:235: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:248: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:256: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

> Task :reactnativecryptopp:externalNativeBuildDebug FAILED
76 actionable tasks: 76 executed
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/timothee/ExternalProjects/react-native-cryptopp/example/android/app/src/debug/java/com/example/reactnativecryptopp/ReactNativeFlipper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':reactnativecryptopp:externalNativeBuildDebug'.
> Build command failed.
  Error while executing process /Users/timothee/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja with arguments {-C /Users/timothee/ExternalProjects/react-native-cryptopp/android/.cxx/cmake/debug/armeabi-v7a rncryptopp}
  ninja: Entering directory `/Users/timothee/ExternalProjects/react-native-cryptopp/android/.cxx/cmake/debug/armeabi-v7a'
  [1/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/aes-candidates.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [2/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/insecure.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [3/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/helpers.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [4/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/hash-functions.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [5/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/react-native/ReactCommon/jsi/jsi/jsi.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [6/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/utils.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [7/12] Building CXX object CMakeFiles/rncryptopp.dir/cpp-adapter.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [8/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/public-key.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [9/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/key-derivation.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [10/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/message-authentication.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [11/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [12/12] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so
  FAILED: ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so
  : && /Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --gcc-toolchain=/Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security  -O3 -frtti -fexceptions -Wall -fstack-protector-all -Wl -DONANDROID -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -Wl,--build-id -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,librncryptopp.so -o ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/aes-candidates.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/hash-functions.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/helpers.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/insecure.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/key-derivation.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/message-authentication.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/public-key.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/utils.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/react-native/ReactCommon/jsi/jsi/jsi.cpp.o CMakeFiles/rncryptopp.dir/cpp-adapter.cpp.o -L/Users/timothee/ExternalProjects/react-native-cryptopp/android/build/react-native-0.67.1.aar/jni/armeabi-v7a ../../../../../cpp/android/libcryptopp_armeabi-v7a.a -lreactnativejni -llog -landroid -latomic -lm && :
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:143: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:151: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:164: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:172: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:185: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:193: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:206: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:214: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:227: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:235: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:248: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:256: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  clang++: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 22s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/timothee/ExternalProjects/react-native-cryptopp/example/android/app/src/debug/java/com/example/reactnativecryptopp/ReactNativeFlipper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':reactnativecryptopp:externalNativeBuildDebug'.
> Build command failed.
  Error while executing process /Users/timothee/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja with arguments {-C /Users/timothee/ExternalProjects/react-native-cryptopp/android/.cxx/cmake/debug/armeabi-v7a rncryptopp}
  ninja: Entering directory `/Users/timothee/ExternalProjects/react-native-cryptopp/android/.cxx/cmake/debug/armeabi-v7a'
  [1/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/aes-candidates.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [2/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/insecure.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [3/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/helpers.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [4/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/hash-functions.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [5/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/react-native/ReactCommon/jsi/jsi/jsi.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [6/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/utils.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [7/12] Building CXX object CMakeFiles/rncryptopp.dir/cpp-adapter.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [8/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/public-key.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [9/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/key-derivation.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [10/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/message-authentication.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [11/12] Building CXX object CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp.o
  warning: unknown warning option '-Wl' [-Wunknown-warning-option]
  1 warning generated.
  [12/12] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so
  FAILED: ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so
  : && /Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --gcc-toolchain=/Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/timothee/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security  -O3 -frtti -fexceptions -Wall -fstack-protector-all -Wl -DONANDROID -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -Wl,--build-id -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,librncryptopp.so -o ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/librncryptopp.so CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/aes-candidates.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/hash-functions.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/helpers.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/insecure.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/key-derivation.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/message-authentication.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/public-key.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/cpp/utils.cpp.o CMakeFiles/rncryptopp.dir/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/react-native/ReactCommon/jsi/jsi/jsi.cpp.o CMakeFiles/rncryptopp.dir/cpp-adapter.cpp.o -L/Users/timothee/ExternalProjects/react-native-cryptopp/android/build/react-native-0.67.1.aar/jni/armeabi-v7a ../../../../../cpp/android/libcryptopp_armeabi-v7a.a -lreactnativejni -llog -landroid -latomic -lm && :
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:143: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:151: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Rijndael>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:164: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:172: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::RC6>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:185: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:193: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::MARS>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:206: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:214: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Twofish>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:227: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:235: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::Serpent>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:248: error: undefined reference to 'void rncryptopp::aescandidates::encrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  /Users/timothee/ExternalProjects/react-native-cryptopp/cpp/react-native-cryptopp.cpp:256: error: undefined reference to 'void rncryptopp::aescandidates::decrypt<CryptoPP::CAST256>(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >*)'
  clang++: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 22s

    at makeError (/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/execa/index.js:174:9)
    at /Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/execa/index.js:278:16
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async runOnAllDevices (/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:109:5)
    at async Command.handleAction (/Users/timothee/ExternalProjects/react-native-cryptopp/example/node_modules/@react-native-community/cli/build/index.js:192:9)
info Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Is it expected?
If I checkout to this commit, https://github.com/JiriHoffmann/react-native-cryptopp/commit/fd4c948f6632d7a237d233dccff6e050af194735 I'm able to run the example project, however it fails at runtime with another error whenever I type anything in the input field.

Yes, there is a bug, I already have it fixed, just need to test everything out

repo: JiriHoffmann/react-native-cryptopp