0

我正在为我的Samsung Note 3.0制作示例Spen SDK应用程序,并使用Android Studio。在初步认识xml文件是: -Spen示例applicatoin刚刚启动后崩溃(运行时错误)

<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); 
    } 

现在,当我试图通过三星注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 \ SD卡\机器人\数据\空\串行) )
  • com.samsung.sdraw.SettingView(显示java.lang.NullPointerException )

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

UPDATE:

  1. 我已调试的应用程序和异常发生在

    的setContentView(R.layout.activity_main);

in 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') 
    } 
    
  • 该应用程序运行,如果我评论的CanvasView和SettingsView阻止xml文件和OnCreate()函数中的相应行。
  • +0

    你应该使用的logcat而不是断点检查这种类型的问题,并编辑生成的**堆栈跟踪**崩溃到你的问题。但是很可能你的activity_main xml无效或包含对未进入设备的自定义组件的引用。 –

    回答

    -1

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

    +0

    @marcinm ...评论CanvasView和SettingView块使应用程序随着我的崩溃而运行。有4个按钮在应用程序的主屏幕中可见。 – avinash

    +0

    好的,我会告诉你我在我的项目中做些什么,也许会有所帮助。将您的.jars移动到顶层(与build.gradle相同)libs目录。更改gradle.build - >编译文件('libs/libspen23.jar')编译文件('libs/libspen23_multiwindow.jar')。在文件夹主子文件夹jniLibs中创建并在其中粘贴armeabi及其内容。它适用于我,因为Android Studio会自动将jniLibs文件夹中的本机库添加到项目中。 – marcinm

    相关问题