所以我有一个使用OpenCV的Android应用程序。我一直试着跑,但是我得到了不满意的链接错误。
以下是代码:
package com.example.hairsimulator;
import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;
import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Core;
import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ImageView view;
private static Activity myActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myActivity = this;
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
while (!OpenCVLoader.initDebug()) {
Log.e("suck","suck");
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
setContentView(R.layout.activity_main);
view = (CustView) findViewById(R.id.imageView1);
AssetManager manager = getAssets();
Bitmap bitmap;
// read a Bitmap from Assets
InputStream open = null;
try {
open = manager.open("back.png");
bitmap = BitmapFactory.decodeStream(open);
view.setImageBitmap(bitmap);
((CustView) view).setBits(bitmap);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (open != null) {
try {
open.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static Activity getActivity() {
return myActivity;
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void startUp(View v) {
view.setOnTouchListener(new JobListener(true));
}
}
如果我注释掉记录“suck,suck”的代码,那么我会得到一个UnsatisfiedLinkError。我有OpenCV库和其他所有安装。我只是不知道如何解决这个问题。请帮帮我。
答案 0 :(得分:0)
您可以从分析项目依赖性开始。为此,您可以使用依赖性walker。所以你可以看到出了什么问题。另一个重要的事情是,您必须确保使用正确的架构。如果您使用x64并调用x32或反之,则不可避免的链接错误是不可靠的。我认为你的问题不是程序化的,只有一点配置错误。