Category Archives: Error

org/sqlite/native/Mac/aarch64 Error [How to Solve]

Problem Description:
When building a project with m1 chip, if you use room, you will get the following error because the sqlite jar package is not compatible with arm.

Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64
    at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:333)
    at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:64)
    at androidx.room.verifier.DatabaseVerifier.<clinit>(DatabaseVerifier.kt:68)
    ... 50 more

Solution:
To update the room version, you don’t need to add org.xerial:sqlite-jdbc:3.34.0 as the web says, just update the room directly as shown below.

    def room_version = "2.4.0-beta01"  
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"
    implementation "androidx.room:room-rxjava2:$room_version"

How to Solve Ceres library Error when compiling A-LOAM

The C++ version in the CMakeLists for direct download of the A-LOAM library is 11, as follows:

cmake_minimum_required(VERSION 2.8.3)
project(aloam_velodyne)

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")

But Ceres 2.0 and above requires C++14 compiler, so you just need to change the C++ compiler to 14

cmake_minimum_required(VERSION 2.8.3)
project(aloam_velodyne)

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++14")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")

[Solved] Found bindings for the following environments

When running the previously written vue project, I encountered the following error.
It should be caused by incompatible version upgrade
Error:

Module build failed: ModuleBuildError: Module build failed: Error: Missing binding E:\SVN\32IDPW\04-project\03-source\02-web\briefing\node_modules\node-sass\vendor\win32-x64-64\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 10.x
Found bindings for the following environments:
- Windows 64-bit with Node.js 8.x

 

Solution:

npm rebuild node-sass

npm update

npm run dev

How to Solve m_gshhs_i Error

I encountered a small problem when running m_gshhs_i after installing High Precision Shoreline GSHHS

First, review the installation method:

Step1:
Download GSHHS coastlines and WDBII rivers/borders in native binary format ( zip archive )‘gshhs+wdbii_2.2.0.zip’ from http://www.soest.Hawaii.edu/pwessel/gshhs/

Step 2:
unzip the zip file to the (……\MATLAB\toolbox\m_map\private) path

If there is no problem using m_gshhs_i in matlab after the above two steps, then there is no need to perform the operation and just use it normally. If the error is reported using m_gshhs_i as follows.

WARNING: Coastline file private/gshhs_i.b not found \n(Have you installed it?See the M_Map User's Guide for details)\n ---Using default coastline instead 

Then we need to go to ……\MATLAB\toolbox\m_map\path to find the m_gshhs.m file, open it and find

FILNAME='private/gshhs_i.b';

Modify it with:

FILNAME='private\';

After saving, use m_gshhs_i again and find that it works fine. If it does not work properly after modification, then try modifying it to

FILNAME='The path to matlab on your computer\MATLAB\toolbox\m_map\private\';

At this time, it can be used normally m_gshhs_i.

Oracle Database Cannot Open mount Mode Error: ORA-01102

Error in opening mount mode of database: ora-01102: cannot mount database in exclusive mode

SQL> startup nomount;
 
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size		    2932632 bytes
Variable Size		  427819112 bytes
Database Buffers	  629145600 bytes
Redo Buffers		   13844480 bytes
SQL> SQL> alter database mount;
 
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode

Reason: There is a “sgadef.dbf” file in the “ORACLE_HOME/dbs” directory and Oracle processes (pmon, smon, lgwr, and dbwr) still exist – even if the database is closed, the shared memory segments and semaphores still exist – there is an “ORACLE_HOME/dbs/lk” file “lk” and “sgadef. There is an “ORACLE_HOME/dbs/lk” file “lk” and “sgadef. dbf ” files for locking shared memory. It seems that even if no memory is allocated, Oracle thinks the memory is still locked.
To view the startup log:


Solution.
1. Go to /d01/oracle/PROD/db/tech_st/12.1.0/dbs/ directory
2. Delete the lkPOD file

rm -rf  lkPROD

3. Make sure Oracle has no background processes: ps -ef |grep ora_ |grep PROD|grep ora_dbw0_PROD

if there is a background process, please use the command “kill” to delete it.

[oracle@ebs ~]$  kill -9 1912

Log in again using mount mode

[oracle@ebs ~]$ sqlplus/as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Mar 2 12:52:42 2022

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size		    2932632 bytes
Variable Size		  427819112 bytes
Database Buffers	  629145600 bytes
Redo Buffers		   13844480 bytes
Database mounted.

Successfully resolved.

[Solved] UNABLE TO START SERVLETWEBSERVERAPPLICATIONCONTEXT DUE TO MISSING SERVLETWEBSERVERFACTORY BEAN

In Spring Boot projects, this error occurs in two ways.

1. you forgot to add @SpringBootApplication in the class where the main method is located

2. the dependency is missing, just add it

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

Error in value[[3L]](cond) : Package ‘rhdf5‘ version 2.36.0 cannot be unloaded:

library(rhdf5)
Error in value[[3L]](cond) : Package 'rhdf5' version 2.36.0 cannot be unloaded:Error in unloadNamespace(package) : namespace 'rhdf5' is imported by 'HDF5Array', 'MOFA2' so cannot be unloaded

This is caused by importing packages from two places

Solution:

unloadNamespace('MOFA2')
unloadNamespace('HDF5Array')
library(rhdf5)

success

[Solved] CXF Call webservice Client Error: 2 counts of InaccessibleWSDLException

Background
The webservice service is used for interface communication in the project. In the specific application, the caller does not access the service directly, but forwards the request through a proxy to achieve access.

Problem
The client code generated by using apache axis1.4 tool to invoke the service can be accessed normally; the client code generated by using apache cxf tool reports an error: 2 counts of InaccessibleWSDLException.

Reason
The client code of axis is written with service name, port type and other information fixed in the generated code, while the client code of cxf is parsed by GET to get the wsdl file and bind service name and port name and other information before calling the interface.

image

In the project, because the proxy redirection interface address is used, the wsdl file cannot be directly obtained through GET for parsing, so an error is reported.

Solution:

  • a. Store the wsdl file locally, read the local wsdl file in the client, and fill in the address of the actual interface in the soap address label in the wsdl file
<service name="xxxService">
   <port binding="xxxSOAPBinding" name="xxxSOAPPort">
      <soap:address location="http://yourActualAddress/xxxService"/>
   </port>
</service>
  • b. Change the calling code to skip the step of getting the wsdl.
xxxService ss = new xxxService(null, SERVICE_NAME);
XXXServicePortType port = ss.getPort(xxxServicePortType.class);

BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext()
  .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
    "http://www.example.com/real_endpoint_url_goes_here");
Response res = port.yourMethods(...);

[Solved] error: taking address of temporary array av_make_error_string((char[AV_ERROR_MAX_STRING_SI…




/**
 * Convenience macro, the return value should be used only directly in
 * function arguments but never stand-alone.
 */
//#define av_err2str(errnum) \
 //   av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)

//Modify as the following:


av_always_inline char* av_err2str(int errnum)
{
    static char str[AV_ERROR_MAX_STRING_SIZE];
    memset(str, 0, sizeof(str));
    return av_make_error_string(str, AV_ERROR_MAX_STRING_SIZE, errnum);
}

Modify libavutil/error.h:132 as the above.