1. ホーム
  2. アンドロイド

error: 'Test*' から非スカラー型 'Test' への変換が要求された。

2022-02-28 14:41:52
<パス
The source code of the Test class is as follows

class Test{
    public:
        Test();
        void helloWorld();  
};

Test test = new Test();
test.helloWorld();
Error: Scalar to non-scalar conversion error. That is, I was using a conversion error caused by converting a scalar to a non-scalar quantity, i.e., the compiler does not allow such a conversion. After some research, the new operator on the right side of Test test = new Test() creates a pointer variable, and the class on the left side is a non-scalar.


jniで使用しているコードは以下の通りです。

Test *test = new Test();
test->helloWorld();

Error: Scalar to non-scalar conversion error. That is, I was using a conversion error caused by converting a scalar to a non-scalar quantity, i.e., the compiler does not allow such a conversion. After some research, the new operator on the right side of Test test = new Test() creates a pointer variable, and the class on the left side is a non-scalar.


[問題解決】です。] 以下のコードを使用するようにjniを修正します。

Test *test = new Test();
test->helloWorld();

こうすると、等号の左側と右側の両方がスカラーになります。