2 jacky0319 Jacky0319 于 2016.04.09 17:48 提问

Android Studion (AS)相关版本对Project影响测试结论,亟盼大牛相助 5C

这个问题我在一周内测试和各种网站查找资料,至少累计16小时,非常苦闷!

这个Project简单,来源于陈老师的一本书。
App启动后,点击{登陆} (pic 1), 应该显示 Pic3, 但我这里显示 Pic2 。
我开始是 一行行自己手动输入的, 恐怕有错, 找陈老师给了源代码Copy各个 .xml, .java,
但是结果都相同。

我 在 AS里 New>import 陈老师的Project, 提示 " Failed to sync Gradle projec ...." ,
按提示Download Gradel 和SDK 等后,运行App, 结果正常(Pic 3);
于是对比 Proect Structrue, 如图 (陈老师的AS1.3 吧?  pic 456 ) 我的 AS1.5.1 (pic 789, Gemotion version 5.0)
陈老师 我的AS1.5.1
project : Gradle Version 2.2.1 2.8
Properties: Complier sdk Verison API 21: Android 5.0 API 23:Android 6.0

Build Tools Version 21.1.2 23.0.2
Flavors: Min Sdk Version API 21:Android 5.0 19
Target Sdk Version API 21:Android 5.0 API 23:Android 6.0

 于是我进行了系列修改Project Structure 的测试,
1) 单独改变 Min SDK verion, 如API 21, API 23, 结果同样错误;
2) 同时改变 Min SDK verion 和 Target 如API 21 和21, API 23和23, 结果同样错误;
(注改变后Clern project, 否则不运行)
3) 单独改变 Properties: Complier sdk Verison, 如API 21,项目无法运行; 

4) 新建Project, 单独改变 Gradle Version, 如2.2 结果同样错误;
5) 尝试改变AndroidMainfest.xml的Application ,结果同样错误

结论: AS的兼容性极差。有许多不成熟!大力向微软的VS 学习。 
另外,发现运行什么都非常慢(包括Genymotion, Add 虚拟机30分钟才10%,干脆停了);用Eclips的转换要谨慎。
作了多年的VB/VS 开发,如风流畅。手机 开发都是这样慢吗?

 
 请教大牛:
1)上述 各种“version”有哪些区别?哪里可找到这个资料? 
2)如何修改才能运行正确?

问题3: 我 在下述第1行下断点, F8到第2行,再F8,F8,F8...不断冒出 “View.java, handler.java, looper.java 的各行, 这些都不是我写的,冒出来有什么用? (
显示Debuger 多复杂吗? 我根本不想见! }
F8 了半天,最后F9 ,才出来。 也没有错误提示,无法定位错误结果的原因!

// 跳转到首页
Intent intent = new Intent(MainActivity.this,SuccessActivity.class);
startActivity(intent);

附源代码。 多谢!! 
图片说明

[ 阿? 没有上传 rar 文件功能。 需要者,请联系我]

4个回答

android_freshman
android_freshman   2016.04.12 10:03

1.首先你对
Build Tools Version ,Min Sdk Version ,Target Sdk Version
这3个概念不熟悉,各种尝试,为什么不先了解呢,http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsversion-vs-compilesdkversion,你可以百度或者google 了解下,关键字吗,就上面的就可以。
2.关于如何正确运行,你代码贴出来。。。详细点。还有错误提示。
3.如果as 没有提示,可以手动用gradle 编译下,看看有没有错误提示,

android_freshman
android_freshman   2016.04.12 10:03

1.首先你对
Build Tools Version ,Min Sdk Version ,Target Sdk Version
这3个概念不熟悉,各种尝试,为什么不先了解呢,http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsversion-vs-compilesdkversion,你可以百度或者google 了解下,关键字吗,就上面的就可以。
2.关于如何正确运行,你代码贴出来。。。详细点。还有错误提示。
3.如果as 没有提示,可以手动用gradle 编译下,看看有没有错误提示,

Jacky0319
Jacky0319   2016.04.15 15:23

谢谢这个Freshman, 这个代码Copy来的。在AS 1.5.1 下 import 老师的Project, 点Sync grdle 后, 项目就打开正常运行了。 我 New 个 Empty project ,
然后 copy 老师的代码,就出现上述错误。 现 贴出 MainActivity.java,

package com.example.app0501_5021p23;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText userName; // 用户名
private EditText password; // 密码
private CheckBox autologin; // 是否自动登录复选框
private Button btnLogin; // 登录按钮

// 声明一个SharedPreferences用于保存数据
private SharedPreferences spSettings = null;

private static final String PREFS_NAME = "NamePwd";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    userName = (EditText)findViewById(R.id.et_username);
    password = (EditText)findViewById(R.id.et_password);
    autologin = (CheckBox)findViewById(R.id.cb_autologin);
    btnLogin = (Button) findViewById(R.id.btn_login);
    // 绑定组件事件
    setListener();
    // 获取数据
    getData();
}

/**
 * 为组件添加事件
 */
private void setListener() {
    // 为登录按钮绑定事件
    btnLogin.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // 判断用户名和密码
            if ("admin".equals(userName.getText().toString())
                    && "123456".equals(password.getText().toString())) {
                // 判断复选框是否选中
                if (autologin.isChecked()) {
                    spSettings = getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
                    // 得到Editor对象
                    Editor edit = spSettings.edit();
                    // 记录保存标记
                    edit.putBoolean("isKeep", true);
                    // 记录用户名
                    edit.putString("username", userName.getText().toString());
                    // 记录密码
                    edit.putString("password", password.getText().toString());

// edit.commit(); // 提交
edit.apply();
} else {
spSettings = getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
// 得到Editor对象
Editor edit = spSettings.edit();
// 记录保存标记
edit.putBoolean("isKeep", false);
// 记录用户名
edit.putString("username", "");
// 记录密码
edit.putString("password", "");
// edit.commit(); // 提交
edit.apply();
}
// 跳转到首页
Intent intent = new Intent(MainActivity.this,SuccessActivity.class);
startActivity(intent);
} else {
// 显示错误提示
Toast.makeText(getApplicationContext(), "用户名或密码错误",
Toast.LENGTH_SHORT).show();
}
}
});
}

@Override
protected void onResume() {
    // 在界面显示数据之前得到之前存储的数据
    super.onResume();
    getData();
}

/**
 * 获取存储的数据
 */
private void getData() {
    // 得到sharedpreferences对象
    spSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    // 判断是否之前存储过用户名密码
    if (spSettings.getBoolean("isKeep", false)) {
        // 如果之前存储过,则显示在相应文本框内
        userName.setText(spSettings.getString("username", ""));
        password.setText(spSettings.getString("password", ""));
    } else {
        // 否则显示空
        userName.setText("");
        password.setText("");
    }
}

}


Jacky0319
Jacky0319   2016.04.15 15:27

我 Build>make project, 没有错误提示。

程序运行 打开了 SuccessActiviy, 只是 没有 Toast " 登陆成功“,而是显示了空白的 "New text"

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ssd4 - Exercise5 - VB
ssd4 - Exercise5 - Visual Studion Project
网络科学(复杂网络)领域的大牛和研究机构总结 (第三次修改)
网络科学(复杂网络)领域的大牛和研究机构总结 (第三次修改) http://blog.sciencenet.cn/home.php?mod=space&uid=830496&do=blog&quickforward=1&id=640611 点击打开链接
开发与测试常见问题总结与建议
1、存在问题:模块与模块之间没有做好联调,集成测试需要经过多次代码修改才能完成烟雾测试 解决建议:(1) 各模块的开发负责人在进行模块设计和代码编写的时候,主动和与该模块相关的其它模块负责人交流、讨论接口交互规则和存在的疑问。我们的开发目前对自己的模块都很清楚和负责,也非常配合问题追踪以及修改问题,如果大家在此基础上多点主动与互动,产品的开发效率和质量就会更高了。(2) 在各模块单元测试完成后,由
Android Studio 在降级安装过程中产生的各种问题及解决方法
问题 1.this package depends on missing sdk platform 当你需要升级SDK版本或者降低版本的时候需要通过点击上方菜单中的Tools>Android>SDK Manager再点击左下角蓝色的Launch Standalone SDk Manager 链接之后会进入Android SDK Manager 界面,点击install package ...
关于树或二叉树的一些定理和结论
1.对于一棵具有n个结点的树,该树中所有结点的度数之和为多少?怎么算? n-1 每个节点都有且只有一个入度。除去根节点没有入度 所以一共是N-1。(这里所说的入度借鉴的是图论中对于入度的定义)。 2. 二叉树叶子节点与度为二的节点有什么关系? 叶子结点就是没有孩子的结点,其度为0,度为二的结点是指有两个儿子的结点。比如一棵深度为2的满二叉树,叶子结点就是最下面的那一层,其个数为4,度为
测试大牛的一些博客
1.安卓测试开发的博客    天平  http://blog.csdn.net/niubitianping/article/list/2 2. 小坦克 testng教程 TestNG 入门教程
云计算的一些总结知识
云计算的特点: 1,泛在网络访问,让用户可以在任何地方通过任何设备来访问需要的信息服务是人们追求的一个理想,云计算的发展让我们离这个目标更进一步。 2,服务可度量,可以让用户的云服务使用进行监控、控制、报告和计费。此特征能够使云服务的交付实现最优化,能够对云服务的使用进行证实,用户可以支队切实使用的资源进行付费。 3,多租户,对物理和虚拟资源进行组织和分配,让多个租户和他们的计算与数据彼此隔
国外测试牛人博客
说起软件开发界的牛人,大部分从业人员都可以列出很多,但测试界的大牛为人所知的却很少,其实并不是测试界没有牛人,而是很少有关于这些牛人的介绍。今天我就整理一篇,让测试界的牛人出来露个脸,捎上牛人的博客,让测试的同行有机会和牛人近距离交流。     PS:如果您心目中的某个牛人或者您自己的blog未出现在这个列表里面,请告诉我。:) Cem Kaner 《计算机软件测试》 《软件测
矩阵的一些常用结论
矩阵有时候有一些常用的结论与性质,如果有一段时间不接触或者实际中没使用到,很容易就会遗忘。因此,特意做一个小小的总结,方便使用与查询。1.矩阵AA的全部特征值的集合通常被称为AA的谱。 2.|A|=λ1λ2⋯λn|A| = \lambda_1\lambda_2\cdots\lambda_n,或者时候AA的行列式为所有特征值的乘积。 3.∑ni=1aii=∑ni=1λi\sum_{i=1}^{n}
jdk 版本并发 性能
Fork/Join框架在不同配置下的表现如何? 正如即将上映的星球大战那样,Java 8的并行流也是毁誉参半。并行流(Parallel Stream)的语法糖就像预告片里的新型光剑一样令人兴奋不已。现在Java中实现并发编程存在多种方式,我们希望了解这么做所带来的性能提升及风险是什么。从经过260多次测试之后拿到的数据来看,还是增加了不少新的见解的,这里我们想和大家分享一下。 ExecutorS