当我做ProGuard时,我使用Blurry它给了我:
Error loading RS jni library: java.lang.UnsatisfiedLinkError:
android.support.v8.renderscript.l: Error loading RS jni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.app.app-2/lib/arm/librsjni.so"
at android.support.v8.renderscript.RenderScript.a(SourceFile:1347)
at android.support.v8.renderscript.RenderScript.b(SourceFile:1504)
at android.support.v8.renderscript.RenderScript.a(SourceFile:2454)
at jp.wasabeef.blurry.internal.Blur.rs(SourceFile:62)
at jp.wasabeef.blurry.internal.BlurTask$1.run(SourceFile:61)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud) 我在Android上对我的应用程序进行了一些检测测试,但是碰壁了.我有一个来自android的v7支持库的SearchView,我想以某种方式测试它.我猜它不能直接点击,因为我用传统的方法尝试过:
onView(withId(R.id.search_view)).perform(click())
Run Code Online (Sandbox Code Playgroud)
有没有办法SearchView用Espresso 进行测试?
假设我的build.gradle文件为在以下位置定义的同一变量定义了不同的值BuildConfig:
android {
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
release {
buildConfigField BOOLEAN, VARIABLE, "1"
}
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想BuildConfig为这个变量定义值androidTest(创建的那个app/build/generated/source/buildConfig/androidTest/debug/{app_id}/test/BuildConfig.java)
现在,该值与debug闭包中的值相同.
是否有可能改变它?
我正在尝试使用Android Studio中的"工具"命名空间功能.ListView出于设计目的,我正在尝试使用虚拟列表项填充.这里的链接说tools:listitem="@android:layout/<filename>"应该这样做.
但出于某种原因,Android Studio一直在显示Layout android:<filename> does not exist.我正在尝试为其找到解决方案,因此我不必一次又一次地使用虚拟值来运行我的应用程序进行测试.
我可能会忽略一些非常愚蠢的东西,所以请原谅我.这是我现在拥有的:
<ListView
android:id="@+id/controllerProfiles"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
tools:listitem="@android:layout/profiles_list_item"/>
Run Code Online (Sandbox Code Playgroud)
我有一个文件profiles_list_item.xml在res/layout.任何建议或替代?
我想在一个片段中测试一个方法,但在这个方法中我调用了一个 Toast:
Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
现在我想用 JUnit 和 Powermockito 测试该方法。为此,我想忽略 Toast。我是这样尝试的:模拟 Toast 并忽略 toast.show()
Toast toastMock = mock(Toast.class);
doReturn(toastMock).when(Toast.makeText(any(Activity.class), anyString(), Toast.LENGTH_SHORT));
doNothing().when(toastMock).show();
Run Code Online (Sandbox Code Playgroud)
但是我总是得到一个 RuntimeException,因为我在没有创建新的 toast 对象的情况下调用了 Toast。我怎样才能绕过这个问题?
我亲眼目睹了onBackpressureBuffer的奇怪行为,我不确定它是一个有效的行为还是一个bug.
我有一个tcp调用,以一定的速率发出项目(使用流和inputStream,但只是为了一些信息)
最重要的是,我创建了一个使用create的observable,每次准备就会发出一个项目.
我们称之为message().
然后我这样做:
messages()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({//do some work});
Run Code Online (Sandbox Code Playgroud)
我注意到使用很少抛出MissingBackPressureException的分析工具,所以我在调用中添加了onBackpressureBuffer.
如果我在之后添加observeOn:
messages()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.onBackpressureBuffer()
.subscribe({//do some work})
Run Code Online (Sandbox Code Playgroud)
Everyting工作得很好,但这意味着只有在获得UI主线程之后它才会缓冲,所以我更喜欢它是这样的:
messages()
.onBackpressureBuffer()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({//do some work});
Run Code Online (Sandbox Code Playgroud)
事情开始变得奇怪.
我注意到while messages()会继续发出项目,但在某些时候它们将停止发送给订阅者.
更准确地说,正好在16个项目之后,显而易见的是缓冲区将开始持有物品而不会将它们向前传递.
一旦我取消了messages()某种超时机制,它将导致messages()发出onError(),缓冲区将立即发出它保存的所有项目(它们将被处理).
我已经检查过是否是订购太多工作的订户错误但是没有,他已经完成但他仍然没有得到这些物品......
我也尝试request(n)在订阅者中使用该方法,在onNext()完成后请求一个项目,但缓冲区不起作用.
我怀疑Main Android UI Thread的消息系统带有背压导致这个,但我无法解释原因.
谁能解释为什么会这样?这是一个错误还是一个有效的行为?TNX!
我想在android(内部和外部存储)中获取所有视频路径,我尝试过使用:
List<String> paths = new ArrayList<String>();
File directory = new File("/system" OR "/mnt/sdcard");
File[] files = directory.listFiles();
for (int i = 0; i < files.length; ++i) {
if(files[i].getAbsolutePath().contains(".mp4")) {
paths.add(files[i].getAbsolutePath());
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法从我的设备上获取所有视频列表.
我设计了一种形状来应用于线性布局的背景。它在API级别21上可以完美运行,但在API级别16上却无法正常工作,请帮助我。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:drawable="@android:id/background"
android:width="3dp"
android:color="#023e64">
</stroke>
<corners
android:bottomLeftRadius="16dp"
android:bottomRightRadius="16dp"
android:topLeftRadius="16dp"
android:topRightRadius="16dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud) 我已经弄清楚如何使用下面的方法将 X 轴值设置为显示在底部而不是顶部。我现在遇到的问题是,我的 Y 轴值同时显示在左侧和右侧,而我只希望它们显示在图表的左侧。
if (response.isSuccessful()) {
// Reload data source
Items = new ArrayList<>();
Items.clear();
Items.addAll(response.body());
//currentReportingGroup = Items.get(0).ReportingGroup;
//ItemsAdapter.notifyDataSetChanged();
Log.i(TAG, "onResponse: ");
//load(view);
BarChart chart = (BarChart) aq.id(R.id.chart).getView();
XAxis xAxisChart = chart.getXAxis();
YAxis yAxisChart = chart.getAxisLeft();
//yAxisChart.setValueFormatter(new MyAxisValueFormatter());
// yAxisChart.setPosition(YAxis.YAxisLabelPosition.);
xAxisChart.setPosition(XAxis.XAxisPosition.BOTTOM);
BarData data = new BarData(getXAxisValues(), getDataSet());
chart.setData(data);
chart.setDescription("");
chart.animateXY(2000, 2000);
chart.invalidate();
}
Run Code Online (Sandbox Code Playgroud) 在Java swing中,有没有办法只绘制图像的形状,而不是图像本身?如果是这样,我该怎么办呢?
我的图像由一个单一的形状和一个透明的背景组成.我的目的是能够改变图像的颜色.
Android Studio 2.2.2
Run Code Online (Sandbox Code Playgroud)
我有一个NewsListModelImp类,它是MVP中的模型.
我想将改装服务注入模型中.但是,因为NewsListModelImp不包含对我无法调用的上下文或活动的任何引用getApplication().如果您在活动或片段中,您将采取以下措施.我不想在构造函数中传递任何上下文或活动,NewsListModeImp因为它必须来自演示者,我想避免任何android的东西.
public class NewsListModelImp implements NewsListModelContract {
@Inject
NYTimesSearchService mNYTimesSearchService;
public NewsListModelImp() {
((NYTimesSearchApplication)getApplication()).getAppComponent().inject(this);
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序类
public class NYTimesSearchApplication extends Application {
private AppComponent mAppComponent;
public void onCreate() {
super.onCreate();
/* Setup dependency injection */
createAppComponent();
}
private void createAppComponent() {
mAppComponent = DaggerAppComponent
.builder()
.retrofitModule(new RetrofitModule())
.build();
}
public AppComponent getAppComponent() {
return mAppComponent;
}
}
Run Code Online (Sandbox Code Playgroud)
我提供的模块
@Module
public class RetrofitModule {
private Retrofit retrofit() { …Run Code Online (Sandbox Code Playgroud) 我正在尝试收集关于他们在约会方面有多远的几个月的信息.
我首先让用户输入他们想要使用的月份.
Scanner uMonth = new Scanner(System.in);
String tMonth = uMonth.next();
if (tMonth.equals("January")){
int eMonth = 1;
}else if (tMonth.equals("February")){
int eMonth = 2;
}else if (tMonth.equals("March")){
int eMonth = 3;
}else if (tMonth.equals("April")){
int eMonth = 4;
}else if (tMonth.equals("May")){
int eMonth = 5;
}else if (tMonth.equals("June")){
int eMonth = 6;
}else if (tMonth.equals("July")){
int eMonth = 7;
}else if (tMonth.equals("August")){
int eMonth = 8;
}else if (tMonth.equals("September")){
int eMonth = 9;
}else if (tMonth.equals("October")){
int eMonth = 10; …Run Code Online (Sandbox Code Playgroud) android ×10
java ×4
backpressure ×1
blurry ×1
dagger-2 ×1
gradle ×1
if-statement ×1
image ×1
listview ×1
mockito ×1
proguard ×1
renderscript ×1
rx-android ×1
rx-java ×1
searchview ×1
swing ×1
ui-thread ×1
unit-testing ×1
xml ×1