小编R. *_*ski的帖子

ProGuard上的android.support.v8.renderscript错误

当我做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 blurry proguard renderscript android-proguard

9
推荐指数
1
解决办法
1954
查看次数

可以在Android上使用Espresso测试支持v7 SearchView

我在Android上对我的应用程序进行了一些检测测试,但是碰壁了.我有一个来自android的v7支持库的SearchView,我想以某种方式测试它.我猜它不能直接点击,因为我用传统的方法尝试过:

onView(withId(R.id.search_view)).perform(click())
Run Code Online (Sandbox Code Playgroud)

有没有办法SearchView用Espresso 进行测试?

android searchview android-support-library android-espresso

9
推荐指数
1
解决办法
2379
查看次数

Android测试BuildConfig字段

假设我的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 gradle android-testing android-gradle-plugin

7
推荐指数
1
解决办法
3826
查看次数

工具命名空间android listitem

我正在尝试使用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.任何建议或替代?

android listview android-tools-namespace

5
推荐指数
1
解决办法
4626
查看次数

如何忽略 JUnit 测试中的祝酒词?

我想在一个片段中测试一个方法,但在这个方法中我调用了一个 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。我怎样才能绕过这个问题?

java android unit-testing mockito

5
推荐指数
1
解决办法
975
查看次数

RxJava onBackpressureBuffer不会发出项目

我亲眼目睹了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 ui-thread backpressure rx-java rx-android

3
推荐指数
1
解决办法
759
查看次数

如何列出设备上的所有视频文件

我想在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)

但我无法从我的设备上获取所有视频列表.

android

2
推荐指数
2
解决办法
5620
查看次数

背景形状在Android的API级别16中无法完美运行

我设计了一种形状来应用于线性布局的背景。它在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)

xml android

2
推荐指数
1
解决办法
800
查看次数

如何使用 MPAndroidChart BarChart 将 Y 轴值仅设置为左侧而不是左侧和右侧

我已经弄清楚如何使用下面的方法将 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 android android-studio mpandroidchart

2
推荐指数
1
解决办法
2324
查看次数

绘制图像的形状

在Java swing中,有没有办法只绘制图像的形状,而不是图像本身?如果是这样,我该怎么办呢?

我添加了一张图片来告诉你我的意思: 点击这里.

我的图像由一个单一的形状和一个透明的背景组成.我的目的是能够改变图像的颜色.

java swing image

2
推荐指数
1
解决办法
95
查看次数

如何使用dagger2注入没有任何活动或片段的java类

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)

android dependency-injection dagger-2

1
推荐指数
1
解决办法
1038
查看次数

如何在"if"或"else"语句之后收集信息

我正在尝试收集关于他们在约会方面有多远的几个月的信息.

我首先让用户输入他们想要使用的月份.

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)

java if-statement

0
推荐指数
1
解决办法
61
查看次数