小编Ani*_*thy的帖子

Mac OS X上的服务命令

我曾经能够在Mac OS X(10.10.5)命令行上执行:

$ sudo service tomcat7 status
Run Code Online (Sandbox Code Playgroud)

但是,我必须不小心删除与service命令关联的包,我无法找到要重新安装的服务包的名称.任何指针都会非常有用.

我无法在/ sbin /或/ bin /或/ usr/sbin /中找到服务

macos terminal

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

使用多个AAR/JAR创建AAR

我已经看到各种开发者发布的问题(Android Studio将两个.aar合并为一个和其他),但我没有看到一个明确的响应,使我能够创建一个包含一个或多个AAR或JAR的AAR(我可以使用JAR因为我不需要共享任何资源;只有类).这是我的库项目的app.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.google.code.gson:gson:2.1'
    compile ('libs/eventbus.jar')
    compile project(':core-release')
    compile project(':midware-release')
}
Run Code Online (Sandbox Code Playgroud)

同样,这个应用程序是一个库项目,需要两个其他库项目('核心发布','midware-release'),虽然我能够生成一个我可以在我的应用程序中使用的AAR文件,但应用程序无法找到依赖库项目的类,我必须将两个库项目的AAR添加到我的应用程序中.

这是app.gradle应用程序项目(无需手动添加JAR),无法找到依赖项目的类:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.app.sample"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

dependency-management android-gradle-plugin aar

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

运行 Android 测试时没有 JSBridge 错误

运行 androidTests 时,我间歇性地收到一条消息“测试运行已启动完成空测试套件。”,下面给出了发生这种情况时的堆栈跟踪。

\n\n

当我的设备使用 USB 连接到另一个设备时,我使用 ADB 通过 Wi-Fi 运行测试。当我注意到这个异常时,我确保设备仍然处于连接状态。需要明确的是,我的应用程序是本机应用程序,没有网络视图。

\n\n
I/MonitoringInstrumentation: No JSBridge.\n        java.lang.ClassNotFoundException: android.support.test.espresso.web.bridge.JavaScriptBridge\n        at java.lang.Class.classForName(Native Method)\n        at java.lang.Class.forName(Class.java:251)\n        at java.lang.Class.forName(Class.java:216)\n        at android.support.test.runner.MonitoringInstrumentation.tryLoadingJsBridge(MonitoringInstrumentation.java:621)\n        at android.support.test.runner.MonitoringInstrumentation.access$100(MonitoringInstrumentation.java:90)\n        at android.support.test.runner.MonitoringInstrumentation$4.run(MonitoringInstrumentation.java:232)\n        at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1747)\n        at android.os.Handler.handleCallback(Handler.java:733)\n        at android.os.Handler.dispatchMessage(Handler.java:95)\n        at android.os.Looper.loop(Looper.java:146)\n        at android.app.ActivityThread.main(ActivityThread.java:5602)\n        at java.lang.reflect.Method.invokeNative(Native Method)\n        at java.lang.reflect.Method.invoke(Method.java:515)\n        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)\n        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)\n        at dalvik.system.NativeStart.main(Native Method)\n     Caused by: java.lang.NoClassDefFoundError: android/support/test/espresso/web/bridge/JavaScriptBridge\n        at java.lang.Class.classForName(Native Method)\xc2\xa0\n        at java.lang.Class.forName(Class.java:251)\xc2\xa0\n        at java.lang.Class.forName(Class.java:216)\xc2\xa0\n        at android.support.test.runner.MonitoringInstrumentation.tryLoadingJsBridge(MonitoringInstrumentation.java:621)\xc2\xa0\n        at android.support.test.runner.MonitoringInstrumentation.access$100(MonitoringInstrumentation.java:90)\xc2\xa0\n        at android.support.test.runner.MonitoringInstrumentation$4.run(MonitoringInstrumentation.java:232)\xc2\xa0\n        at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1747)\xc2\xa0\n        at android.os.Handler.handleCallback(Handler.java:733)\xc2\xa0\n        at android.os.Handler.dispatchMessage(Handler.java:95)\xc2\xa0\n        at android.os.Looper.loop(Looper.java:146)\xc2\xa0\n        at android.app.ActivityThread.main(ActivityThread.java:5602)\xc2\xa0\n        at …
Run Code Online (Sandbox Code Playgroud)

android-testing

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

从自动完成下拉列表中选择项目时出现 IndexOutOfBoundsException

我在我的应用程序中使用TextInputLayoutandTextInputEditText以及android:inputType="textAutoComplete"and 我不允许两个单词之间有空格,因此如果我在自动完成下拉列表或拼写检查中选择带有空格的项目,我会遇到IndexOutOfBoundsException

java.lang.IndexOutOfBoundsException: setSpan (0 ... 8) ends beyond length 7
            at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
            at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
            at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
            at android.widget.TextView.setSpan_internal(TextView.java:9900)
            at android.widget.Editor.replaceWithSuggestion(Editor.java:2654)
            at android.widget.Editor.-wrap18(Editor.java)
            at android.widget.Editor$SuggestionsPopupWindow.onItemClick(Editor.java:3638)
            at android.widget.AdapterView.performItemClick(AdapterView.java:310)
            at android.widget.AbsListView.performItemClick(AbsListView.java:1156)
            at android.widget.AbsListView$PerformClick.run(AbsListView.java:3121)
            at android.widget.AbsListView$3.run(AbsListView.java:4036)
            at android.os.Handler.handleCallback(Handler.java:751)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:154)
            at android.app.ActivityThread.main(ActivityThread.java:6119)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我使用TextWatcher

private final TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

@Override …
Run Code Online (Sandbox Code Playgroud)

android android-spellcheck android-textinputlayout

5
推荐指数
0
解决办法
616
查看次数

DeviceId和应用程序权限

我的应用程序(S Educate)要求我获取DeviceId(用于Analytics/Recommendations),因此我添加了权限,READ_PHONE_STATE虽然文档是无害的,但当用户安装时,应用程序权限窗口显示"电话呼叫 - 监控,记录,并处理电话"显然阻止用户安装,用户已经通知他们没有因为这个权限而安装.

截图
截图(点击查看大图)

以下是我的选择:

  1. 我在我的应用说明中明确指出,我需要此权限才能获取DeviceId,而不是监控/录制电话,并希望用户相信我并安装应用
  2. 我找到另一种获取DeviceId的方法 - 据我所知,如果不使用上述权限,则无法使用

请告知我如何解决此权限问题.

android android-permissions

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

使用 Assume.assumeTrue 或 Assert.assertTrue,测试何时退出?

我正在使用 JUnit 4.12,这是我目前对经常使用的以下 API 的理解:

  • 假定真:如果表达式计算结果为假,测试将停止并被忽略
  • assertTrue:如果条件为 false,则抛出 AssertionError
  • assertEquals:如果它们不相等,则抛出 AssertionError 并附带给定的消息
  • assertNotNull:如果为null,则抛出AssertionError

但是,我无法弄清楚以下几件事:

  1. 我的理解是,只有假设True,测试才会退出,但断言的定义是,当语句计算结果为 false 时,程序应该退出
  2. 当测试抛出 AssertionError 时,它是退出测试用例还是继续执行剩余的步骤?
  3. 即使测试抛出断言错误,测试是否可以被视为通过,或者测试是否被视为失败?

junit assert

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

从某一帧循环 Lottie 动画

我正在尝试在某些帧之间循环动画,但我根本看不到动画,如果删除代码LottieCompositionFactory....addListener并仅使用 xml 文件,动画确实会显示,但是我想在某些帧之间运行动画:

class OnboardingFragment : Fragment() {
  ...
  ...
  private var myComposition: LottieComposition? = null
  ...
  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

    LottieCompositionFactory.fromRawRes(context, R.raw.my_animation)
                .addListener {
                    myComposition = it
                    Log.d(TAG, "Is animation displaying: $myComposition") //does print the LottieComposition
                    with(lottieAnimation) {
                        alpha = 0F
                        visibility = View.VISIBLE
                        myComposition?.let { it1 -> setComposition(it1) }
                        repeatCount = ValueAnimator.INFINITE
                        setMinAndMaxFrame(29, 219)
                        playAnimation()
                    }
                }
                .addFailureListener {
                    Log.e(TAG, "Error displaying animation: ${it.message}")
                }
Run Code Online (Sandbox Code Playgroud)

和布局文件:

<androidx.constraintlayout.widget.ConstraintLayout
...
...
<com.airbnb.lottie.LottieAnimationView
        android:id="@+id/lottieAnimation"
        android:layout_width="170dp"
        android:layout_height="146dp" …
Run Code Online (Sandbox Code Playgroud)

android android-animation lottie

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