libusb.so を使用しようとしています Android プロジェクトで libusb ライブラリを使用するにはどうすればよいですか。
libusb ソースを使用して Android プロジェクト用の libusb ライブラリをコンパイルしました。新しく生成されたライブラリ libusb.so の関数をコードで使用したいと考えています。次のコードを使用しました.関数がロードされているかどうかを確認するだけです.libusbライブラリを使用してアプリにデバイス情報をリストするにはどうすればよいですか.
jni ディレクトリのコード..
libTest.c
#include <string.h>
#include <jni.h>
#include <stdio.h>
#include <sys/types.h>
JNIEXPORT jstring JNICALL Java_com_example_loadlibrary_MainActivity_libTask(JNIEnv* env, jobject obj)
{
if( libusb_init(NULL) )
return (*env)->NewStringUTF(env, "Library Loaded Successfuly!");
else
return (*env)->NewStringUTF(env, "Can not load library........");
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(CLEAR_VARS)
LOCAL_MODULE := libusb-1.0
LOCAL_SRC_FILES := libusb-1.0.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libTest
LOCAL_SRC_FILES := libTest.c
include $(BUILD_SHARED_LIBRARY)
libusb-1.0.so
src には次の Java ファイルが含まれています。
MainActivity.java
package com.example.loadlibrary;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = new TextView(this);
tv.setText(libTask());
setContentView(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
private native String libTask();
static{
System.loadLibrary("usb-1.0");
System.loadLibrary("libTest");
}
}
しかし、ndkコンパイルでエラーが表示されます:
**エラー: 'libusb_init' への参照が未定義です collect2: ld は 1 つの終了ステータスを返しました make:[obj/local/armeabi/libTest.so] エラー 1 *
関数が私のコードで定義されていないことを示しています。では、どうすればすべての機能を機能させることができるのでしょうか....
そして最後に私がそうするなら
if( libusb_init(NULL) ) を次のように置き換えます: if(1)
すべてのファイルが生成されますが、次のエラーが表示されます。
ターゲットLoadlibrary.exe' failed makefile /Loadlibrary/Debug line 31 C/C++ Problem
undefined reference to
_WinMain@16 のレシピ' Loadlibrary 行 39、外部ロケーション: \usr\src\debug\cygwin-1.7.17-1\winsup\cygwin\lib\libcmain.c C/C++ 問題の作成: * [Loadlibrary6.exe]エラー 1 Loadlibrary C/C++ の問題