【问题标题】:Can anyone tell me how to create the object of c++class in android through ndk谁能告诉我如何通过ndk在android中创建c++class的对象
【发布时间】:2009-11-23 11:12:48
【问题描述】:

我的活动是::

package com.soft;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class TestNdk extends Activity {
     TextView txtHello;


    private int m_cAddValue;


    private TestNdk m_cTestNDK;


    private int m_cObj;
    public TestNdk(int i, int j) {
         getSum();
    }

    public native int getSum();

        /** Called when the activity is first created. */
         @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
                 setContentView(R.layout.main);



              txtHello = (TextView) findViewById(R.id.txtHello);
              txtHello.setText("hai this is for test");  
              //public TestNdk(int i, int j) ;

              m_cTestNDK = new TestNdk(20 ,30);





              txtHello.setText(m_cObj);

          }

         static{
             System.loadLibrary("TestNDK");
            initIDs();
             }


      }

================================================ ===============

我的头文件是 ::test.h

#ifndef __TEST_H__
#define __TEST_H__

class MyClass
{
private:
  int   m_cFirstNum;
  int   m_cSecondNum;
public:
  MyClass(int pNum1, int pNum2);
  int getSum();
  int getMult();
  int getSub();
  int getDiv();
};

#endif  //__TEST_H__

==============================================

我的cpp文件是::test.cpp

#include "test.h"

MyClass::MyClass(int pNum1, int pNum2)
{
  m_cFirstNum = pNum1;
  m_cSecondNum = pNum2;
}

int MyClass::getSum()
{
  return m_cFirstNum + m_cSecondNum;
}

int MyClass::getMult()
{
  return m_cFirstNum * m_cSecondNum;
}

int MyClass::getSub()
{
  return m_cFirstNum - m_cSecondNum;
}

int MyClass::getDiv()
{
  int lRetVal = 0;
  if(0 != m_cSecondNum)
  {
    lRetVal = m_cFirstNum + m_cSecondNum;
  }
  return lRetVal;
}

请指导我 我总是收到这样的消息 ::newInstance 失败:否 ()

【问题讨论】:

  • 请更准确。在您的主题行中使用正确的拼写,去掉任何无关紧要的示例代码,并显示您实际遇到的错误。
  • 我现在提到了这个错误,所以现在你能告诉我 seb
  • 不要只提及错误...复制并粘贴错误。
  • 请发布演示错误所需的最少代码量。你上面的代码对于几乎任何一个问题来说都太多了。
  • 请最小化代码并粘贴确切的错误。

标签: c++ android


【解决方案1】:

你真的需要做两件事:

  1. 学习 JNI:http://java.sun.com/docs/books/jni/html/jniTOC.html

  2. 了解 Android 特定位:http://developer.android.com/sdk/ndk/1.6_r1/index.html#samples

这里的内容与 JNI 的使用方式相差甚远,因此您应该从头开始。 (首先在桌面上学习可能最容易,因为网上有更多的文档和示例,甚至还有关于该主题的书籍。桌面 Java JNI 和 Android JNI 之间的区别主要在于如何准确构建代码.)

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2013-06-08
    • 2011-01-17
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多