Spen示例应用程序在启动后崩溃(运行时错误)

时间:2014-06-09 10:26:50

标签: android android-studio samsung-mobile samsung-mobile-sdk

我正在为我的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来调试应用程序时,应用程序启动,在一秒钟内显示主页和崩溃。我在网上搜索了thisthis。我在libs文件夹中也没有Spen SDK的 armeabi 目录。所以,我包括了库,现在我的项目的libs文件夹看起来像: -

libs <-- my Project's folder
  libs
    armeabi
    libspen23.jar
    libspen23_multiwindow.jar

但仍然发生同样的事情。没有编译错误。我注意到的一件事是我的xml文件无法由Android Studio呈现。以下是截图: enter image description here

这些例外是: - 无法实例化以下类:

  • com.samsung.sdraw.CanvasView(渲染期间不允许写入访问(\ mnt \ sdcard \ android \ data \ null \ serial) )
  • com.samsung.sdraw.SettingView(显示java.lang.NullPointerException )

谁能告诉我这是什么问题?

更新

  1. 我调试了应用程序,异常发生在

    的setContentView(R.layout.activity_main);

  2. 在OnCreate()中。但我无法找出应用程序崩溃的原因。

    1. gradle文件是: -
    2. 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()函数中的相应行,应用程序就会运行。

1 个答案:

答案 0 :(得分:-1)

当您使用layount-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