转战Andrdoi Studio (一)

2023-11-23 11:48
文章标签 studio 转战 andrdoi

本文主要是介绍转战Andrdoi Studio (一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AS开发Android越来越成了主流,只好慢慢靠拢了。跟着Google的亲儿子混吧!

以下据说是Google放弃Eclipse ADT的原因,也就是说优势:

1.使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(传说中的DSL

2.基于GroovyDSL可以混合各种声明元素,用代码操控这些DSL元素达到逻辑自定义。

3.支持已有的Maven或者Ivy仓库基础建设

4.非常灵活,允许使用best practices,并不强制让你遵照它的原则来。

5.其它插件时可以暴露自己的DSLAPI来让Gradle构建文件使用。

6.允许IDE集成,是很好的API工具

 

以上六条,我琢磨了半天,最后的总结就是:

有很多操作你要换模式了... 因为我不懂具体那六条是什么意思。

安装的困惑我就不说了,我也忘记自己的Studio是怎么能用的。

 

于是,我只能描述我遇到的问题和解决办法..

 

一、结构完全看不懂...看不懂...不懂......

当时大概是这样一个界面,第一感觉:什么玩意,三个一样的!


图里红色的方框其实标出来了,点击那里可以切换文档的目录结构。这是AS的一个显示方式Android,个人感觉好理解的是Project下的目录结构,虽然同样有些看不懂...没事,慢慢来总能懂的。

 

 

二、@drawable/xxxxx 的图片资源找不到了

  当时我感觉好无力啊,这怎么会?再一看,drawable-hdpi等四个文件夹也找不到了,出来四个mipmap开头的文件夹。我想是不是@mipmap?在src=””中”@mi”没反应,跪了!

无奈百度吧,结果大概如下:

Mipmap提倡放图片,因为Google的优化或者什么策略的原因,能做到比deawable好不少;

Drawable文件夹依旧存在,提倡存放配置属性的文件,这一点倒是变化不大。

@mipmap/xxx是正确的使用方法,只能是手写!目前没有自动提示

只能手写...能手写...手写......

 

三、*.jar包和*.so引入

我这里只各列举两种办法,还有好多,需要的百度吧!这两种是我觉得比较省力好用的,哈哈。

Jar1:  Eclipse里面jar包复制到libs文件夹下就可以了,AS中光复制是不行的。需要手动添加一下:右键libs里的jar文件,选择下图红色点击默认选择app就好了;



Jar2:或者直接在app下的build,gradledependencies添加一句话 :

 compile files('libs/xxxx.jar')


红色方框内两个都是加入的jar


 

下面是so文件的导入:

 

So1:  app下的src下的main下新建文件夹jniLibs,将.so或者包含.so的文件夹复制到这里,就好了。红色方框标出层级关系:


So2:  APP下的build.gradle文件夹中添加一段引用(好像叫引用):

 

sourceSets {

        main {

            jniLibs.srcDirs = ['libs']

        }

    }

 

上面一段画的意思和src下建文件夹是一样的,当然,这个时候你的libs里面要有.so或者包含.do的文件夹。对了sourceSets要包含在android{}中。

以上具体原理我目前还不懂,先用着,慢慢就懂了,不求甚解,多用然后让孰生巧。

 

 

三、添加Android Libaray

直接File -> new -> import Module -> 选择->finish后,就可以看到目录里面有了该库了,Eclipse中,勾选之后就可以了,但是AS不行。

你可以在主工程试着引用它的Jar包等的时候,你发现还是引用不了。

也就是说到现在并没有完事,还要添加一下的:

项目右键 -> Open Module Setting 出来一个面板


面板选app -> Dependencies -> + -> module dependency -> 导入的project-> 完成

这个时候就可以试一下了

在运行的时候可能会继续出问题。

 报以下错误:

D:\SoftInstall\Android\workspace\TestApplication\app\src\main\AndroidManifest.xml:8:9-43 Error:

Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:8:9-43

is also present at [TestApplication:vitamioBundle:unspecified] AndroidManifest.xml:12:9-45 value=(@drawable/ic_launcher)

Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:6:5-39:19 to override

D:\SoftInstall\Android\workspace\TestApplication\app\src\main\AndroidManifest.xml:9:9-41 Error:

Attribute application@label value=(@string/app_name) from AndroidManifest.xml:9:9-41

is also present at [TestApplication:vitamioBundle:unspecified] AndroidManifest.xml:13:9-45 value=(@string/vitamio_name)

Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:6:5-39:19 to override

Error:Execution failed for task ':app:processDebugManifest'.

> Manifest merger failed with multiple errors, see logs

 

问题出在了较新版本gradle上;其实不应该叫做问题,是gradle提供了更好的解决办法。出错的原因是主Projectmanifest.xml<application> 节点中的属性和加入的Android Librarymanifest.xml <application> 节点的属性重复了,这种情况将导致gradle合并时因为分歧而出现异常。

 

方法1(试过)在主projectmanifest.xml<application>几个属性申明完添加一句

tools:replace="xxx,yyy,zzz"   xxx,yyy,zzz 分别代表相同的属性,删除掉引入中对应的属性即可

并且记得在文件开始加上:xmlns:tools="http://schemas.android.com/tools" 不然上述无效

 

 

方法2:(网上说的)build.gradle根标签上加上useOldManifestMerger true (懒人方法)

 


这篇关于转战Andrdoi Studio (一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417729

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

Weex入门教程之2,Android Studio安装Weex插件

插件位置及描述 https://plugins.jetbrains.com/idea/plugin/8460-weex 貌似对windows还不是很支持,先放着吧。 安装 插件功能 先预览下都有什么功能 安装完成Weex插件后,如果在main toolbar找不到这些功能图标,那么就需要手动添加到main toolbar 添加到main toolbar 红框内就是

安装SQL2005后SQL Server Management Studio 没有出来的解决方案

一种情况,在安装 sqlServer2005 时 居然出现两个警告: 1 Com+ 目录要求 2 Edition change check 郁闷!网上说出现两个警告,是肯定装不成功的!我抱着侥幸的态度试了下,成功了。 安装成功后,正准备 “ 仅工具、联机丛书和示例(T)” 但是安装不了,他提示我“工作站组件”安装过了对现有组件无法更新或升级。 解决办法: 1 打开“控

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示; 代码如下: Demo07.jrxml <?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.6.

Jasperreports+jaspersoft studio 实现支持富文本格式的数据

昨天有位博友给我发邮件问我:Jasperreports+jaspersoft studio 如何实现支持富文本格式的数据! 其实,我也是第一次遇到这个问题;我就百度搜索,我记得之前:我解决过用百度编辑器,解析富文本格式的数据,是设置一个属性; 最后,只百度到一篇文章;https://zhidao.baidu.com/question/1430121390482093659.html 废话不多

Jasperreports+jaspersoft studio学习教程(八)- 报表分页和大量数据内存处理

9.1 设计报表模板 9.1.1 使用Table组件新建模板(步骤参考教程七)如下: 9.1.2 模板自带变量 $V{PAGE_NUMBER} :代表当前页数(可以是页码也可以是页数,通过TextField的计算时间的不同值来设置) $V{PAGE_COUNT} :当前页面中记录的数目 $V{groupname_COUNT} :   代表当前组的记录数 $V{COLUMN_NU

Jasperreports+jaspersoft studio学习教程(七)- 子报表Subreport(父子报表互相传值)

转载:https://blog.csdn.net/shiyun123zw/article/details/79221708 有很多人都说Jasperreports不适合中国式复杂报表,实际上运用好父子报表可以解决大部分问题了。例如下面的表。每个学生的学科数目不固定,且每个学生后有相当于小计的平均分。有点复杂度的报表,可以使用子报表解决。 8.1 设计报表模板 8.1.1 新建主模板De

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

Android studio 遇到的问题总结

1、Error:Error: The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing getSystemService to getApplicationContext().getSystemService [Wifi