Samsung Note 3.0 用のサンプル Spen SDK アプリを作成しており、Android Studio を使用しています。関連する xml ファイルは次のとおりです。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/settingBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="pen"
android:layout_weight="1"/>
<Button
android:id="@+id/eraseBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="erase"
android:layout_weight="1"/>
<Button
android:id="@+id/undoBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="undo"
android:layout_weight="1"/>
<Button
android:id="@+id/redoBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="redo"
android:layout_weight="1"/>
</LinearLayout>
<FrameLayout
android:id="@+id/canvas_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.samsung.sdraw.CanvasView
android:id="@+id/canvas_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
/>
<com.samsung.sdraw.SettingView
android:id="@+id/setting_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</FrameLayout>
対応する Java コードは次のとおりです。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MainActivity mContext = this;
CanvasView mCanvasView = (CanvasView) findViewById(R.id.canvas_view);
RelativeLayout mCanvasContainer = (RelativeLayout) findViewById(R.id.canvas_container);
SCanvasView mSCanvas = new SCanvasView(mContext);
mCanvasContainer.addView(mSCanvas);
}
Samsung Note 3.0 を PC に接続してアプリをデバッグしようとすると、アプリが起動し、mainPage が表示され、1 秒以内にクラッシュします。ネットで検索して、これとこれを見つけました。私もlibs フォルダーに Spen SDK のarmeabiディレクトリがありませんでした。そのため、ライブラリを含めたので、プロジェクトの libs フォルダーは次のようになります。
libs <-- my Project's folder
libs
armeabi
libspen23.jar
libspen23_multiwindow.jar
しかし、それでも同じことが起こっています。コンパイルエラーはありません。そのときに気づいたことの 1 つは、私の xml ファイルを Android Studio でレンダリングできないことでした。スクリーンショットは次のとおりです。
例外は次のとおりです:- 次のクラスをインスタンス化できませんでした:
- com.samsung.sdraw.CanvasView (レンダリング中の書き込みアクセスは許可されていません (\mnt\sdcard\android\data\null\serial) )
- com.samsung.sdraw.SettingView(java.lang.NullPointerException)
誰が問題が何であるか教えてもらえますか?
アップデート:
アプリをデバッグしましたが、次の場所で例外が発生しました
setContentView(R.layout.activity_main);
OnCreate() で。しかし、アプリがそこでクラッシュする理由がわかりません。
- gradle ファイルは次のとおりです。
apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '19.1.0' defaultConfig { applicationId 'com.example.myapplication3.app' minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName '1.0' } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/libspen23.jar') compile 'com.android.support:appcompat-v7:19.+' compile files('libs/libs/libspen23.jar') }
- xml ファイルの CanvasView ブロックと SettingsView ブロック、および OnCreate() 関数の対応する行にコメントを付けると、アプリが実行されます。