0

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)

誰が問題が何であるか教えてもらえますか?

アップデート:

  1. アプリをデバッグしましたが、次の場所で例外が発生しました

    setContentView(R.layout.activity_main);

OnCreate() で。しかし、アプリがそこでクラッシュする理由がわかりません。

  1. 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')  
}
  1. xml ファイルの CanvasView ブロックと SettingsView ブロック、および OnCreate() 関数の対応する行にコメントを付けると、アプリが実行されます。
4

1 に答える 1

-1

layout-weight を使用している場合は、layout-width または layout-height を 0dip に設定する必要があります。各ボタンに android:layout_width="0dip" を設定してみてください。多分それはそれを行うでしょう。そうでない場合は、これにコメントしてみてください:

<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" />

それが役に立てば、問題がどこにあるかがわかります。

また、build.gradle を貼り付けてください

于 2014-06-09T10:45:22.330 に答える