对于调试运行报异常退出问题(新手常遇到这样的问题)
调试运行异常,很新手都是从网上拿来的代码,点运行调试。
常遇到一个问题,就是不能正常运行。
其中之一,就是 R 文件丢失没有自动生成,
这个问题以网上很多解决办法,在这不再详讲。 新建一个工程,把代码复放进去就OK .
在拿到别人的代码,放到自己的工程里,还是有问题那怎么。代码又没有提示报红。
很多原因在于,AndroidManifest.xml 文件里面。
一部分原因忘记写上对应的权限
<uses-permission>
一般在logcat中有能查到报错原因。
看下面的文件:
XML/HTML代码
1 <?xmlversion="1.0"encoding="utf-8"?>
2 <manifestxmlns:android="http://schemas.android.com/apk/res/android"
3 package="net.wigo.happygame"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdkandroid:minSdkVersion="7"/>
7 <application
8 android:icon="@drawable/happy_72icon"
9 android:label="@string/app_name">
10 <!--守候服务,为开机启动-->
11 <receiverandroid:name=".BootReceiver"android:label="@string/app_name">
12 <intent-filter>
13 <actionandroid:name="android.intent.action.BOOT_COMPLETED"/>
14 <categoryandroid:name="android.intent.category.HOME"/>
15 </intent-filter>
16 </receiver>
17 <!--主活动应用入口-->
18 <activityandroid:label="@string/app_name"android:name=".MainActivity"
19 <intent-filter>
20 <actionandroid:name="android.intent.action.MAIN"/>
21 <categoryandroid:name="android.intent.category.LAUNCHER"/>
22 </intent-filter>
23 </activity>
24 <!--主菜单活动-->
25 <activityandroid:name=".HappyMenu"></activity>
26 </application>
27 <!--使用权限-->
28 <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
29
30 </manifest>
上面代码看是没有什么问题,代码也也没有报错,点运行
报错
这个报错,在logcat中是没有任务反应。
如果工程里很多文件,要找到这个问题,非常困难。
这个原因在哪里?
就在上面AndroidManifest.xml里面
31 <receiverAndroid:name=".BootReceiver"android:label="@string/app_name">
BootReceiver 文件在 autorun 包里
这里应改为name=".autorun.BootReceiver"
这为什么是这样的,很多网上的代码都 "."+文件名
对于新手来说,真的会头晕。
原因在于,name 所在的位置,在androidManifest.xml 定义了
package="net.wigo.happygame"
起止位置在happygame包, 采用相对位置来索引的,
name=".BootReceiver" 是上一层级,在当前层级里没有找到BootReceiver
就到到 wigo包里找,都没有找到,所以就报错了。
name=".autorun.BootReceiver" 意思是,先返到wigo包 找到 autorun包,进入autorun找到BootReceiver
对于新手来说,希望对你有帮助。 如不知道相对位置 和绝对位置 的朋友可以到网上搜,
对于在 name 参数内容理解,拿到别人的代码,可以轻松加入到自己的工程里,不会出错。