我没有Android经验,我正在尝试使用Samsung S-Pen SDK 2.3创建一个非常简单的应用程序。我正在关注三星开发者网站上的this tutorial。当我实现最基本的例子时,我得到以下错误。
WARNING: Could not load libjni_secime natives
No implementation found for native Lcom/bst/HwBeautify/BeautifyNative;.nativeCBInitEngine:()I
threadid=11: thread exiting with uncaught exception (group=0x41a242a0)
...
FATAL EXCEPTION: Thread-1829
java.lang.UnsatisfiedLinkError: Native method not found: com.bst.HwBeautify.BeautifyNative.nativeCBInitEngine:()
at com.bst.HwBeautify.BeautifyNative.nativeCBInitEngine(Native Method)
at com.bst.HwBeautify.BeautifyNative.cbInitEngine(SourceFile:107)
at com.bst.HwBeautify.BeautifyManager.b(SourceFile:87)
at com.bst.HwBeautify.BeautifyManager.a(SourceFile:85)
at com.bst.HwBeautify.BeautifyManager$1.run(SourceFile:64)
at java.lang.Thread.run(Thread.java:856)
...
S-Canvas is not created yet. Call "changeModeTo" in onInitialized() of SCanvasInitializeListener or call it after onInitialized() SCanvasLayout is up to been initailized
... No implementation found for native Lcom/bst/HwBeautify/BeautifyNative;.nativeCBInitEngine:()I threadid=16: thread exiting with uncaught exception (group=0x41a242a0)
这里是应该初始化canvas的活动的整个代码:
package com.example.canvastest;
import com.samsung.spensdk.SCanvasView;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.widget.RelativeLayout;
public class CanvasSpace extends Activity {
private Context mContext;
private RelativeLayout mCanvasContainer;
private SCanvasView mSCanvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_canvas_space);
mContext = this;
mCanvasContainer = (RelativeLayout) findViewById(R.id.canvas_container);
mSCanvas = new SCanvasView(mContext);
mCanvasContainer.addView(mSCanvas);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.canvas_space, menu);
return true;
}
}
这是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CanvasSpace" >
<RelativeLayout
android:id="@+id/canvas_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
</RelativeLayout>
</RelativeLayout>
令我担心的是这个非常奇怪的S_Pen_SDK2.3
文件夹结构。我有文件名路径(705项)而不是普通目录。
我从未见过这样的事情。为什么有人会这样做?这样的文件夹结构有什么好处吗?
无论如何,我按照教程,引用库并在指定的armeabi
文件夹中包含文件。
以下是我的包浏览器的视图:
我在网上搜索过,我在三星开发者身上发现了a thread来解决这个问题,但在我的情况下却无济于事。我到目前为止尝试的是在armeabi
文件夹中的文件名之前删除这些路径,但这没有帮助。如果有人给我一些关于如何让它起作用的提示,那对我非常有帮助。我包含了很多明显的代码和截图,以便清楚地了解我的项目中有什么。
答案 0 :(得分:5)
以错误的方式导入库,这就是你获得异常的原因。
将libspen23.jar
以及整个armeabi
目录复制到libs
。
看起来应该是这样的:
libs
armeabi
lib* (all .so files)
libspen23.jar
查看S Pen SDK 2.3提供的示例,其中显示了如何正确导入库。