Fabric SDK(适用于Android)间歇性地失败构建,并出现以下错误:
ERROR - Crashlytics Developer Tools error.
com.crashlytics.tools.android.project.ManifestData$ManifestIOException: Crashlytics could not find the manifest. Not found at /Users/Shared/Jenkins/Home/workspace/my_project@2/true
at com.crashlytics.tools.android.project.ManifestFileProvider.getManifestStream(ManifestFileProvider.java:32)
at com.crashlytics.tools.android.project.DefaultManifestData.createManifest(DefaultManifestData.java:124)
...
Run Code Online (Sandbox Code Playgroud)
没有明显的模式,什么时候它会或不会失败的构建,所以任何调试这个真正恼人的问题的线索将不胜感激.
/Users/Shared/Jenkins/Home/workspace/my_project@2/true
Run Code Online (Sandbox Code Playgroud)
...看起来不像任何清单的路径,imo,但我不知道为什么会看到那里.
编辑添加:这是另一个版本的更完整的堆栈跟踪.pull_request_build是詹金斯工作的名字; 它合法地是项目的根目录.
15:41:46 ERROR - Crashlytics Developer Tools error.
15:41:46 com.crashlytics.tools.android.project.ManifestData$ManifestIOException: Crashlytics could not find the manifest. Not found at /Users/Shared/Jenkins/Home/workspace/pull_request_build@2/true
15:41:46 at com.crashlytics.tools.android.project.ManifestFileProvider.getManifestStream(ManifestFileProvider.java:32)
15:41:46 at com.crashlytics.tools.android.project.DefaultManifestData.createManifest(DefaultManifestData.java:124)
15:41:46 at com.crashlytics.tools.android.project.StandardAndroidProjectFactory.createTypedProject(StandardAndroidProjectFactory.java:176)
15:41:46 at com.crashlytics.tools.android.project.StandardAndroidProjectFactory.create(StandardAndroidProjectFactory.java:118)
15:41:46 at com.crashlytics.tools.android.project.StandardAndroidProjectFactory.create(StandardAndroidProjectFactory.java:93)
15:41:46 at com.crashlytics.tools.android.DeveloperTools.processProperties(DeveloperTools.java:483)
15:41:46 at com.crashlytics.tools.android.DeveloperTools.processArgsInternal(DeveloperTools.java:348)
15:41:46 at com.crashlytics.tools.android.DeveloperTools.gradleMain(DeveloperTools.java:292)
15:41:46 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:41:46 at …Run Code Online (Sandbox Code Playgroud) 我的一位QA工程师正在支持具有相当大的代码库和许多不同的SharedPreferences文件的应用程序.前几天他来找我,询问如何在测试运行之间重置应用程序状态,就像它已经卸载 - 重新安装一样.
Espresso(他正在使用)和Android测试框架本身都不支持它,所以我不知道该告诉他什么.使用本机方法清除所有不同的SharedPreferences文件将是一个非常脆弱的解决方案.
如何在仪表期间重置应用程序状态?
我有一个ListView显示的东西,其中许多有一个说明性的图像,其中一些没有.ViewHolder使用NetworkImageView显示插图.
问题是即使设置了默认图像,也只有在调用setImageUrl()时才会显示它,如果url为空,则会将视图的源位图设置为null.如果网址不为空,则会发出请求.这意味着即使没有与该特定视图关联的有效网络URL,也强制一个人发出网络请求,否则不显示默认图像而是显示空视图.
(提交的问题:https://code.google.com/p/android/issues/detail?id = 59538)
有没有办法对没有有效网址的项目进行虚假网络请求?
我有这个布局,如果我不在我的HorizontalScrollView中使用fillviewport = true,它的缩放很奇怪(可能是由于不可靠的布局嵌套).
当fillviewport = false时,一切都工作很好(除了奇数缩放),但是当fillviewport = true时,缩放是完美的但不会发生滚动.
这是布局(注意:我知道你不应该在滚动视图中放置webview.但是webview没有smoothscrollto也没有公开setscroller方法,所以...... bleh.)
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webContainer"
android:layout_below="@+id/titlebar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webZ"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</HorizontalScrollView>
Run Code Online (Sandbox Code Playgroud)
设置android:fillViewport ="true"通常不会禁用视图中的滚动,是吗?
它应该确保滚动视图填充视口而不管其内容的大小,是吗?我认为视口是屏幕的可见区域,并且在webview中可见区域的边缘肯定有更多内容,我只是无法再滚动到它.
我可以从logcat看到正在调用滚动方法,它们只是不改变屏幕.(除非我将fillviewport设置为false.)
我需要做的是让背景图像填充按钮的自然大小,因为没有指定背景并显示默认的灰色背景图像.但相反,我的按钮会缩放到背景图像的大小而不是文本.
之前有一个问题,但没有人有解决方案.
按钮:

<Button
android:id="@+id/morebtn"
style="@style/CustomButton"
android:text="More" />
Run Code Online (Sandbox Code Playgroud)
我有这个自定义按钮样式(greybutton是一个9补丁):
<resources>
<style name="CustomButton" parent="@android:style/TextAppearance">
<item name="android:textColor">#FFFFFF</item>
<item name="android:layout_marginLeft">10dip</item>
<item name="android:layout_marginRight">10dip</item>
<item name="android:layout_marginBottom">10dip</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_centerInParent">true</item>
<item name="android:background">@drawable/greybutton</item>
<item name="android:textSize">20sp</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
现在它尽管被告知wrap_content,但它会在宽度方向上填满屏幕.当我从Button样式中删除android:background时,按钮缩小以按预期包装文本.
有谁知道为什么我的背景图像不像默认的按钮背景?
我有这个代码:
$ze = Hash.new( Hash.new(2) )
$ze['test'] = {0=> 'a', 1=>'b', 3 => 'c'}
$ze[5][0] = 'one'
$ze[5][1] = "two"
puts $ze
puts $ze[5]
Run Code Online (Sandbox Code Playgroud)
这是输出:
{"test"=>{0=>"a", 1=>"b", 3=>"c"}}
{0=>"one", 1=>"two"}
Run Code Online (Sandbox Code Playgroud)
为什么不输出:
{"test"=>{0=>"a", 1=>"b", 3=>"c"}, 5=>{0=>"one", 1=>"two"}}
{0=>"one", 1=>"two"}
Run Code Online (Sandbox Code Playgroud)
?
我正在尝试使用Gradle Java插件来执行Android项目中存在的jUnit测试.我的解决方案是创建一个应用Java插件的第二个模块,并将测试sourceSet设置为app模块的src/test目录.
test-module的build.gradle:
apply plugin: 'java'
...
dependencies {
...
testCompile project(':app-module')
}
sourceSets {
test {
java.srcDirs += ["${appDir}/src/test/java"]
}
}
Run Code Online (Sandbox Code Playgroud)
这可以在命令行中正常工作,但Android Studio拒绝导入在子模块外部具有源集的项目.它抛出错误:Can't register given path of type 'TEST' because it's out of content root.
.
??? app-module
? ??? build.gradle
? ??? src
? ??? main
? ??? test
??? test-module
? ??? build.gradle
??? build.gradle
??? settings.gradle
Run Code Online (Sandbox Code Playgroud)
我尝试从父build.gradle配置它,但这没有改变任何东西.我可以在测试模块中添加app-module作为testCompile项目依赖项,但这不会导致测试模块添加app-module的测试.
是否有任何想法让测试模块运行app-module的测试而不会激发Android Studio对远程源集的限制?
设置:
我继承的一个较旧的项目有很多遗留的仪器测试,我想对它们施加超时,因为它们中的很多都可以无限期地挂起,这使得很难获得测试报告。我正在将测试更新为 Junit4 样式,但目前它们都在扩展 ActivityInstrumentationTestCase2。
到目前为止尝试过:
在AndroidJUnitRunner的文档中,它说要设置这个标志:
设置将应用于每个测试的超时(以毫秒为单位):-e timeout_msec 5000 ...
...所有参数也可以通过元数据标签在 AndroidManifest 中指定
我已经尝试将 AndroidJUnitRunner 配置添加到应用程序清单和测试清单,但 timeout_msec 元数据项到目前为止没有任何影响。
我在这里做了一个不可取的事情,我知道,但我有一个嵌入在horizontalscrollview中的webview.(我需要比webview提供更多的滚动控件.)
布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webRel"
android:layout_below="@+id/titlebar"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webZ"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</HorizontalScrollView>
Run Code Online (Sandbox Code Playgroud)
结果如下:

webview没有填满horizontalscrollview.horizontalscrollview正在归档视图,所以我想我可以说webview没有填充视图,即使我已经设置为fill_parent.我真的非常喜欢它,如果有人帮我弄清楚如何让webview在横向上填充横向视图...因为然后我测量高度并使用该测量来对文本进行分页(然后以宽度方式显示在块中这就是我选择horizontalscrollview的原因.)
:d
(或者,有关在webview中进行平滑水平滚动的更简洁方法的建议也会有所帮助.)