第一个APP......的Errors

  在上一篇文章中,已经安装好了Android Studio,那么现在就来开始写app了吧,不过这篇文章主要是针对刚开始写app时遇到的种种问题和它的解决方案(呃,也不知道能不能找到哈);好吧,开始运行Android Studio,新建第一个app。

新建项目

点击Start a new Android Studio project。
这里写图片描述

这里要给你的app取个名字,首字母要大写。还有公司域名(呃,瞎编),最后是保存路径。
这里写图片描述

然后是选择设备(手机、电视、穿戴设备、眼镜),还有最低的android版本要求,低版本的android设备是无法使用这个app的。这里就选择它默认的4.0.3了。
这里写图片描述

然后就是选择Activity(Activity 就是app中一个屏幕的抽象),选择好多啊……
这里写图片描述
  好吧,抱着学习的心态,去百度逛了一圈后,在这插播一下关于Activity的知识。下面的随便看看就行。


  Activity是Android组件中最基本也是最为常见用的四大组件(ActivityService服务Content Provider内容提供者BroadcastReceiver广播接收器)之一。
在android 中,Activity 拥有四种基本状态:
1.Active/Runing
  一个新 Activity 启动入栈后,它显示在屏幕最前端,处理是处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态(active or running)。
2. Paused
  当 Activity失去焦点, 被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。
3. Stoped
  如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被强行终止掉。
4. Killed
  如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。


选择Blank Activity后,next,这里给Activity 设置名称,就直接默认好了。
这里写图片描述

点击finish,就开始生成项目了(这要一点时间)。

Errors coming

等一会后就会出现下面的界面了
这里写图片描述

嗯 ,没错,啥都没干就赏你5个errors。

呃,先把字体调大一点吧,太小了不好看…..
点击file ->setting,然后在左边的菜单中选择”Editor”-“Colors & Fonts”-“Font”,如图:
这里写图片描述
在Scheme一栏选择主题,再点击Save as,就可以自己进行设置字体及其大小了。

下面介绍一下app的项目文件结构:(参考:http://blog.csdn.net/kmyhy/article/details/54929109?locationNum=15
这里写图片描述

AndroidManifest.xml 简介

每个 Android app 都会在 manifests 文件夹中有一个 AndroidManifest.xml 文件。这个 XML 文件用于告诉系统这个 app 需要什么以及构建这个 app 必须要有的一些东西。

进入 app 的 manifests 文件夹,展开并找到 AndroidManifest.xml文件。双击这个文件打开它。

文件中的 manifest 和 application 标签是必须的,而且只能定义一次。

除了元素名称,每个标签还会有一系列属性。例如,application 标签中可能有的属性包括:android:icon、android:label 和 android:theme。

在 manifext 中包含的其他元素包括:

uses-permission: 请求某种权限,以便 app 中的某个操作会被允许。例如,一个 app 必须向用户请求访问 Internaet 的权限,这样你就必须 指定一个android.permission.INTERNET 权限。
activity: 定义一个 activity,activity 组成了 app 的 UI 和逻辑。 app 中可能调用到的每个 ativity 都需要在 manifest 中定义——否则系统无法访问这些 activity,也不会被执行。
service: 定义一个服务,允许你执行长时间的后台操作,或者被其他 app 调用的重量级的通讯 API。例如从网络上抓取数据给 app。和 activity 不同,服务是没有 UI 的。
receiver: 定义一个广播接收器,它允许我们的 app 从系统接收 intents 广播,甚至在 app 的其他组件都没有在运行的情况下。例如这样一种接收器,允许在低电量时,让你的 app 收到系统通知,并允许你编写对应的处理逻辑。

你可以在Android 开发者网站找到在 manifest 文件中允许出现的完整的标签列表。

Gradle 简介

让我们来看看 Gradle。简而言之,Gradle 是一个构建系统,被 Android 所采用。它将 Android 项目构建/编译成一个可安装的 APK 包,后者可在设备上进行安装。

你可以在前面所示截图的 Gradle scripts 目录下找到 build.gradle 文件。在你的项目中这个文件分为有两种级别:project 级别和 module 级别。大部分时候,你应该编辑在 module (或应用程序)级别。

这里写图片描述
打开 build.gradle (Module:app) 文件。里面是默认的 gradle 设置:
这里写图片描述

我们看一下关键的几个部分:

  • apply plugin: ‘com.android.application’ 表示 Android 插件位于父级,要构建一个 Android app,这个顶级元素是必须的。
  • 然后是 android{…} 部分,你在这里配置一些选项,比如 targetSdkVersion。在本例,app 的 target SDK 是 22。另外一个关键的选项是 minSDKVersion,它指定了设备运行你的 app 所需要安装的最小 SDK 版本。例如,如果你的设备的 SDK 版本是 14,如果将 app 的最小 SDK 版本设置为 15,则 app 无法在此设备上运行。
  • 最后是 dependencies{…} 部分。这里可以很容易为你的 app 添加依赖。其中需要注意的是 compile ‘com.android.support:appcompat-v7:23.1.0’ 和 compile ‘com.android.support:design:23.1.0’。它们为老的 API 提供了对 API 23 新特性的支持。

error1-API

呃,跑题了,回到解决errors的问题上来
先看一下这5个错误:
这里写图片描述

E:\Code\Android_Studio\Errors\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\26.0.0-alpha1\res\values-v23\values-v23.xml
Error:(1) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(1) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
E:\Code\Android_Studio\Errors\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\26.0.0-alpha1\res\values-v24\values-v24.xml
Error:(1) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.
Error:(1) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Colored'.
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Code\Android_SDK\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

根据这篇博客(http://blog.csdn.net/u012336923/article/details/48289485)所说,出现这个错误的原因是由于默认的使用API 26,而我还没有下载API 26,有两种解决方法。

  • 下载API
    关闭项目,回到开始页面,选择Configure,再选择SDK Manager.
    这里写图片描述
    这里可以看你已经安装了哪些文件,选中需要下载的文件,点击Install即可。不过这里我已经安装了API 22,而且刚好我手机也是5.1.1的,所以就用第二种方法处理了。
  • 降低appcompat的版本
    将build.gradle里面的dependencies对应的appcompat版本降低:
    将 26.0.0 -alpha1改成22.2.1
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1' 
}

现在点击上面的Run就开始运行了
这里写图片描述

点到activity_main.xml文件下,右边有一个preview,点击之后就可以看到:
这里写图片描述

用数据线连接手机,在开发者选项中打开USB调试,然后回到android studio中点击run,在编译项目后会弹出选择运行设备,选中你的手机。然后手机上会有提示是否接受,点击确认,附一张手机上的图:
这里写图片描述

error2-新建java类时出错

想再新建一个java类时出错
这里写图片描述

根据这篇http://blog.csdn.net/m0_37814654/article/details/77740376的描述,有以下解决方法:

打开studio所在的文件夹(在这之前请关闭studio),
在bin文件夹下找到这个文件studio.exe.vmoptions
使用记事本打开这个文件
添加下面这句话:
-Djdk.util.zip.ensureTrailingSlash=false
保存,ok,重启studio,打开file and templates,发现所有的templates 都存在了,问题解决。

选择文件时要注意一下,如果是64位的电脑,修改的文件是studio64.exe.vmoptions。完美解决!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值