代码及相关xml如下:
discovery.xml:
<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
DiscoveryActivity.java:
public class DiscoveryActivity extends ListActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.discovery);
}
}
在编译时不会报错,但是在运行时,adb打出来的错误为:
java.lang.RuntimeException: Unable to start activity ComponentInfo{net.DiscoveryActivity/net.DiscoveryActivity.DiscoveryActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
解决办法:
将discovery.xml中的代码改为如下:
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
问题得到解决
本文介绍win7环境下apktool的方法
安装:
1、先安装java环境,具体的在这里不介绍,请参考网上其他教程
2、下载apktool,到http://code.google.com/p/android-apktool/downloads/list上下载,需要下载的列表如下图所示:
下载完成后,解压出来,共三个文件,把它们复制到D:\Android目录下
3、在cmd命令窗口里切换到D:\Android目录,输入apktool,如果出现帮助列表的话,表明安装成功
具体的操作使用未完待续
在使用RelativeLayout时,当用到layout above 和 layout bottom等属性时如下的xml会编译出错
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <View android:id="@+id/View02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/View01"></View> <View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View> </RelativeLayout>
解决的方法很简单,掉换一下View01和View02的位置
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View> <View android:id="@+id/View02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/View01"></View> </RelativeLayout>
这个布局问题曾经困扰了我好长时间。。。实在想不到空间在xml布局文件中的位置竟然会影响编译结果