修复自动生成的代码后,无响应的新应用程序

时间:2014-11-11 15:29:49

标签: java android xml eclipse

我是Java的新手,在使用Eclipse Juno创建Android应用程序时遇到了一些问题。我已经尝试过研究错误并且能够解决一些错误 - 我希望有人可以帮助我完成剩下的工作:)

所以我创建了一个新的Android应用程序(Mininum SDK:API11,目标:API14作为示例),但生成的代码充满了错误:

package com.example.test34;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

由于在 styles.xml 文件中出现错误,我开始通过替换(也在values-v11和values-v14中)中的那一行来修复:

样式名称=" AppBaseTheme"父="机器人:Theme.Light"

而不是:

样式名称=" AppBaseTheme"父=" Theme.AppCompat.Light" (添加appcompat.jar没有帮助)

修复后的完整代码:

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Light">
            </style>
        <style name="AppTheme" parent="AppBaseTheme">
            </style>
</resources>

我还在 activity_main.xml 中删除了 android:showAsAction =&#34; never&#34;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.test34.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

R.java (之前丢失)是在执行这些步骤后自动创建的。 之后我去了 Properties&gt; Java Build Path ,添加 appcompat.jar 并选中 Android 4.0 复选框。

以前发生的所有问题现在都消失了。

然而,该应用程序不适用于虚拟设备(Galaxy Nexus API 14或19)。 右键单击项目并选择 Run As .. &gt; Android应用程序启动虚拟设备,但我甚至无法进入菜单 - 它根本没有响应。 当我首先启动设备并按照相同的步骤(运行为.. &gt; Android应用程序)时,它会安装应用程序并给出回复:&#34;很遗憾,应用程序已停止。&#34;。 它至少不能显示&#34; Hello world!&#34;? 或者我通过删除线来破坏某些东西 来自 activity_main.xml android:showAsAction =&#34; never&#34;

我很感激任何建议。非常感谢提前:)

修改

尝试启动应用时,会出现一个窗口,显示&#34;您的项目包含错误&#34;虽然项目中的文件夹没有标记编译器错误,但仍会显示。 控制台说:

编写输出的麻烦:已经准备好了 [2014-11-12 14:34:53 - Dex Loader]无法执行dex:多个dex文件定义了Landroid / support / v7 / app / ActionBar $ Callback; [2014-11-12 14:34:53 - Test34]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Landroid / support / v7 / app / ActionBar $ Callback;

另外,在属性&gt;下在库 - 字段中的Android ,引用 appcompat_v7 标有一个红色十字标记,并且&#34;?&#34; (在项目下)对它的权利。点击添加按钮打开一个项目选择窗口,但我无法从那里选择任何内容。

0 个答案:

没有答案