对于想了解无法在AndroidStudio上运行Robotium的读者,本文将是一篇不可错过的文章,我们将详细介绍androidstudio无法run,并且为您提供关于AndroidAddThissd
对于想了解无法在Android Studio上运行Robotium的读者,本文将是一篇不可错过的文章,我们将详细介绍android studio无法run,并且为您提供关于Android AddThis sdk Facebook sdk无法在Android Studio中构建、Android Emulator未在Android Studio 3.0上运行、Android studio 下的robotium自动化测试和持续集成、Android Studio无法在res / drawable中检测到源文件 Android Studio的有价值信息。
本文目录一览:- 无法在Android Studio上运行Robotium(android studio无法run)
- Android AddThis sdk Facebook sdk无法在Android Studio中构建
- Android Emulator未在Android Studio 3.0上运行
- Android studio 下的robotium自动化测试和持续集成
- Android Studio无法在res / drawable中检测到源文件 Android Studio
无法在Android Studio上运行Robotium(android studio无法run)
有人对这个有了解吗?
解决方法
Android AddThis sdk Facebook sdk无法在Android Studio中构建
我有一个正在Android Studio中处理的项目,当前使用Facebook SDK来检索有关Facebook用户的一些信息.效果很好.
我还需要实现AddThis,但是当我尝试同时引用两个SDK编译该项目时,出现错误消息:
Android Dex: [<removed>] com.android.dx.util.DexException: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
如预期的那样,在AddThis .jar中,存在com.facebook.android.AsyncFacebookRunner.显然,它也存在于Facebook SDK模块中.我在AddThis中需要的功能在Facebook中不存在,反之亦然.
有谁知道处理这种情况的方法?
解决方法:
我能够解决此问题:
由于Facebook SDK是模块而不是jar,因此我从Facebook SDK模块引用了AddThis0.8.8.jar,并从我的项目中直接删除了对它的引用.
这样做之后,Facebook SDK中的com.facebook.android.*与AddThis jar中的副本(com.facebook.android.*)之间仍然存在冲突.因此,我从Facebook SDK中删除了com.facebook.android程序包及其内容-然后将com.addthis包含在(类路径中,我认为?当我在代码中键入“ ATButton”时,Android Studio建议将其包含在内.说:“哎呀,谢谢JetBrains!”).
现在,我可以使用AddThis以及Facebook SDK,而不会发生任何冲突.
我希望这个过程可以以某种方式帮助某人.
[编辑]
仍然存在问题.我还原了Facebook SDK,并从AddThis jar中删除了Facebook内容.不是100%仍在工作,但将所有Facebook内容保留在Facebook模块中可能是一个更好的主意.如果您有更好的解决方案,请提供答案.
Android Emulator未在Android Studio 3.0上运行
在这里,您可以看到我创建了一台名为Nexus 5X的avd机器,我捕获了已创建机器的详细信息,在这里您可以看到:
Name: Nexus_5X_API_25 cpu/ABI: Google Apis Intel Atom (x86) Path: C:\Users\williams\.android\avd\Nexus_5X_API_25.avd Target: google_apis [Google Apis] (API level 25) Skin: nexus_5x SD Card: C:\Users\williams\.android\avd\Nexus_5X_API_25.avd\sdcard.img hw.dPad: no runtime.network.speed: full hw.accelerometer: yes hw.device.name: Nexus 5X vm.heapSize: 256 skin.dynamic: yes hw.device.manufacturer: Google hw.gps: yes hw.initialOrientation: Portrait image.androidVersion.api: 25 hw.audioInput: yes image.sysdir.1: system-images\android-25\google_apis\x86\ tag.id: google_apis showDeviceFrame: yes hw.camera.back: emulated hw.mainKeys: no AvdId: Nexus_5X_API_25 hw.camera.front: emulated hw.lcd.density: 420 avd.ini.displayname: Nexus 5X API 25 hw.gpu.mode: guest hw.device.hash2: MD5:1be89bc42ec9644d4b77968b23474980 hw.ramSize: 1536 hw.trackball: no PlayStore.enabled: false hw.battery: yes hw.cpu.ncore: 2 hw.sdCard: yes tag.display: Google Apis runtime.network.latency: none hw.keyboard: yes hw.sensors.proximity: yes disk.dataPartition.size: 800M hw.sensors.orientation: yes avd.ini.encoding: UTF-8 hw.gpu.enabled: yes
这是SDK工具快照:
好吧,当我运行这个模拟器时,我正面临一些挑战.当我点击这个模拟器的运行按钮时,它什么也没做.
以下是错误日志:
Emulator: Could not launch 'C:\Users\williams\AppData\Local\Android\Sdk\emulator/qemu/windows-x86_64/qemu-system-i386.exe': No such file or directory Emulator: [12360]:ERROR:./android/qt/qt_setup.cpp:28:Qt library not found at C:\Users\williams\AppData\Local\Android\Sdk\emulator\lib64\qt\lib Emulator: Process finished with exit code 2
有人能说出这个配置有什么问题吗?顺便说一句,我已经检查了这些Emulator in Android Studio doesn’t start但没有运气.
解决方法
Android studio 下的robotium自动化测试和持续集成
一、前言
Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。作为官方主推的开发环境和停止对其他开发IDE的支持,Android Studio将成为今后唯一的android开发环境。本文主要介绍在Android Studio环境下的Robotium测试框架使用方法和持续集成。
二、在Android Studio中使用Robotium
2.1 基础环境配置
先来看一下Android Studio中的工程结构,如下图所示:
Android Studio建立的工程会自带一个测试包,如图所示,androidTest即为测试包,测试用例就放在这个包内。如果项目目录内无此测试包,也可直接在src目录下创建test/java目录。创建完成后,检查build.gradle文件查看是否加入了junit4依赖,如果没有就做加入如下配置:
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:22.1.1''
testCompile ''junit:junit:4.12''
}
2.2 引入robotium包
将robotiumd 的jar包复制到工程的libs目录下,右键点击jar包,在下拉菜单中点击如下图所示选项:
2.3 创建一个testcase并运行
在测试包内新建一个javaclass,代码内容和eclipse ADT开发模式下的robotium测试case保持一致。点选testcase类,右键后选择run,在设备列表中选择设备后即可运行case。运行过程日志可以在界面下方run页面中看到。
三、持续集成
经过上面的配置,已经可以在Android Studio 下使用Robotium框架进行自动化测试。下面介绍持续集成。
3.1 了解gradle
Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。也是Android Studio官方推荐的构建工具。
3.2 使用gradle进行自动构建
3.2.1 gradle命令行环境配置
下载gradle,解压到任意目录。
配置环境变量,在PATH中加入路径”$gradle安装目录/bin”,更新环境变量。
在命令行模式中运行gradle –v,如果出现版本信息,则说明配置成功。
3.2.2 常用命令
下面先介绍一下gradle的几个常用命令
gradle clean:删除build文件夹
gradle build:执行项目编译
gradle installDebug:安装debug版本包到设备
gradle intstallDebugAndroidTest:安装debug测试包到设备
gradle uninstallDebug:卸载debug版本包
gradle unintstallDebugAndroidTest:卸载debug测试包
gradle uninstallAll:卸载所有包
gradle test:执行测试
3.2.3 Build.gradle
build.gradle文件是一个构建脚本,类似于ant中的build.xml。当运行gradle命令的时候会从当前目录查找build.gradle文件来执行构建。从第一节项目目录结构图中可以看到,有两个build.gradle,和app同级的是一个顶级的build配置文件,在这里可以为所有module配置一些常用的配置。如依赖库、classpath。App目录下的为android的build.gradle文件。下面我们来看一个最简单android的build.gradle的例子。
Apply plugin: ‘com.android.application’表示是一个app module,应用了com.android.application插件。其次是基于哪个sdk版本编译和构建工具版本。defaultConfig是默认配置,如果没有其他的配置覆盖,就会使用这里的。看其属性的名字就可以知道其作用,比如applicationId是配置包名的,versionCode是版本号,versionName是版本名称等。
buildTypes是构建类型,常用的有release和debug两种,可以在这里面启用混淆,启用zipAlign以及配置签名信息等。
dependencies定义了该module需要依赖的jar,aar,jcenter库信息。
3.2.4 使用gradle命令运行自动化测试
按照以下脚本即可执行自动化测试:
gradle clean
gradle build
gradle uninstallAll
gradle installDebug
gradle insallDebugAndroidTest
adb shell am instrument -e coverage true -e class com.example.chenlei10.myapplication.test.TestSuit -w com.example.chenlei10.myapplication.test/android.test.InstrumentationTestRunner
其中-e 后跟要运行的testsuit或者test类。-w参数后跟测试包名。
将上述命令配置到jenkins中即可实现持续集成
3.2.5 易出现问题
1)Gradle首次编译时出现jar包无法下载的问题。
将build.gradle配置修改一下,把下载依赖包的地址改成maven库,如下:
将repositories中的jcenter()改为mavenCentral()
repositories {
mavenCentral()
}
2)Lint警告导致编译无法完成
在build.gradle内android{}内加入设置
LintOptions{
abortOnError false
}
更多干货分享请关注”百度MTC学院“http://mtc.baidu.com/academy/article
Android Studio无法在res / drawable中检测到源文件 Android Studio
解决方案-第一个问题
资源名称必须以字母(而不是数字)开头。
解决方案-第二个问题
仅使用:
@drawable/039_cloud
代替
@drawable/039_cloud/039_cloud
如此:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/039_cloud" />
Android Studio
Android Studio正在将相同的图像分组,但针对不同的DPI。
选择Android
视图时,您将拥有:
但是当您选择Project
时,您会看到“真实的”项目结构:
复制图像资源并将其直接粘贴到drawable文件夹内。重命名图片,使其不包含数字(例如image_thirty_nine.png)。然后试试这个
<ImageView
android:id="@+id/image_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image_thirty_nine" />
如果尝试上述步骤后直到遇到相同的错误,请尝试以编程方式添加图像资源
//ensure you assignn an id to your image
ImageView imageView = findViewById(R.id.image_id);
imageView.setImageResource(R.drawable.image_thirty_nine);
然后运行您的代码以查看其是否有效
关于无法在Android Studio上运行Robotium和android studio无法run的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android AddThis sdk Facebook sdk无法在Android Studio中构建、Android Emulator未在Android Studio 3.0上运行、Android studio 下的robotium自动化测试和持续集成、Android Studio无法在res / drawable中检测到源文件 Android Studio的相关信息,请在本站寻找。
本文标签: