我正在为我的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调试应用程序,应用程序启动,显示主页并在一秒钟内崩溃。我在网上搜索并找到this和this。我也没有在libs文件夹中的Spen SDK的目录armeabi。所以,我包括这些库,现在我的项目的libs文件夹看起来像: -
libs <-- my Project's folder
libs
armeabi
libspen23.jar
libspen23_multiwindow.jar
但仍然是同样的事情发生。没有编译错误。然后我注意到的一件事是我的xml文件无法由Android Studio渲染。以下是截图:
的产生的异常是: - 以下类不能被实例化:
- com.samsung.sdraw.CanvasView(写访问渲染过程中不允许(\ MNT \ SD卡\机器人\数据\空\串行) )
- com.samsung.sdraw.SettingView(显示java.lang.NullPointerException )
谁能告诉我这个问题是什么?
UPDATE:
我已调试的应用程序和异常发生在
的setContentView(R.layout.activity_main);
in OnCreate()。但我无法找出应用程序崩溃的原因。
- 的gradle这个文件是: -
- 该应用程序运行,如果我评论的CanvasView和SettingsView阻止xml文件和OnCreate()函数中的相应行。
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') }
你应该使用的logcat而不是断点检查这种类型的问题,并编辑生成的**堆栈跟踪**崩溃到你的问题。但是很可能你的activity_main xml无效或包含对未进入设备的自定义组件的引用。 –