首先我的项目一开始是能正常运行的,后来我为了增加一个活动,新建一个java和xml文件,可刚建完问题就来了,错误出现在build.gradle(Module:app)文件下。
我在网上找了好多解决方案,都是说SDK tool 工具版本对应不上,改来改去还是不行,看来他们说的方法不适合我这种情况。
值得注意的一点是,我的项目一开始是能正常运行的,基于这一点我想了一招:
新建一个项目,找到该项目下的build.gradle(Module:app)文件,把新项目下的该文件和旧项目下的同名文件放在一起比较,果然这其中就有猫腻,旧项目中的dependencies下多了2条语句(如下红线所示),抱着尝试的心态,我把新项目下build.gradle(Module:app)下的内容复制到旧项目中并覆盖原有内容。结果再Syn居然成功了。
旧项目中的dependencies
新项目中的dependencies
再来分析以下问题产生的原因,在我新建activity时选择的时New—>Activity—>Empty activity,这样创建出来的activity会被系统自动配置一些内容(具体是什么不是关键)。正是这些配置导致了错误。所以我们选择手动建立activity。它有3个步骤
1. 新建xml页面文件,即需要显示的页面,也是用户唯一能看到的,根据自己的需要设计
2.新建java文件(New—>Java Class),在java文件中加入以下代码就将xml文件和Java文件绑定在了一起
1 import android.app.Activity; 2 import android.os.Bundle; 3 4 public class DetectFailedActivity extends Activity {//类DetectFailedActivity继承自Activity类 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main);//activity_main为第一步创建的xml文件,次吃将2者绑定在一起 9 } 10 }
3.在Manifest.xml中注册类DelectFailedActivity,加入标签<activity android:name=".DetectFailedActivity" />即可
这样一个手工的activity就形成了。不过需要注意的是,这种activity是不能直接显示的,它主要用于新加的activity,一般是从MainActivity中跳转到此处,当然也可以从这个手动的activity 跳转到其他activity