小编mco*_*mco的帖子

Android TextView:设置文本时获取"W/StaticLayout:maxLineHeight不应为-1.maxLines:1 lineCount:1"

我基于计时器每隔0.5秒在TextView上设置一些文本.每次,当计时器运行并且设置了文本时,我在控制台中收到此警告消息.

W/StaticLayout:maxLineHeight不应为-1.maxLines:1 lineCount:1

XML代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_marginTop="12dp"
        android:ellipsize="end"
        android:maxLines="1"
        android:textColor="@color/white"/>

    <TextView
        android:id="@+id/time_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingEnd="4dp"
        android:paddingStart="12dp"
        android:textColor="@color/white"
        android:textSize="12sp"
        tools:text="0:00" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

Java代码:

public void setProgress() {
    // setProgress() called every 0.5 seconds
    // Hardcoded text
    mTimeText.setText("0:05");
}
Run Code Online (Sandbox Code Playgroud)

android textview

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

Android支持库Build v26.XX构建错误:已定义属性"font"

我正在尝试从支持库的25.3.1版本升级到版本26.X.X,但每次使用较新版本构建项目时都会出现此错误:

Error:(357) Attribute "font" already defined with incompatible format.
Error:(343) Original attribute defined here.

Error:java.util.concurrent.ExecutionException: 
com.android.ide.common.process.ProcessException: Error while executing 
process /Users/johnsmith/Library/Android/sdk/build-tools/26.0.1/aapt 
with arguments {package -f --no-crunch -I ...
Run Code Online (Sandbox Code Playgroud)

我尝试过清洁和重建.我也试过使缓存失效并重新启动Android Studio.

该应用程序可以使用25.3.1支持库的版本构建.我正在使用Android Studio 3.0 Beta 2和3.0.0-beta2Android Gradle插件版本.

android gradle android-studio

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

使用新版YouTube时,YouTube Android Player API会在"解组:asc"时抛出"BadParcelableException ClassNotFoundException"

向YouTube Android Player API库工程师提交错误:请参阅android-youtube-api标记

在过去一周半的过程中,我注意到这个奇怪的BadParcelableException在我们的应用程序中稳步增长,并将其钉在了Android的Android新版本上.

如果您的应用正在播放YouTube视频,将您的应用带到后台,强制停止Youtube应用并再次恢复您的应用,则会发生此崩溃.在Youtube版本12.19.56上可以重现崩溃.还在较旧的YouTube版本12.05.21上进行了测试,但崩溃并不存在.

堆栈跟踪:

main Exception: Unable to start activity ComponentInfo{com.myapp.MainActivity}: 
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc 
Stack: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.MainActivity}: 
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6121) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: 
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc 
at android.os.Parcel.readParcelableCreator(Parcel.java:2536) 
at android.os.Parcel.readParcelable(Parcel.java:2462) 
at android.os.Parcel.readValue(Parcel.java:2365) 
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2813) 
at android.os.Parcel.readSparseArray(Parcel.java:2068) 
at android.os.Parcel.readValue(Parcel.java:2422) 
at android.os.Parcel.readArrayMapInternal(Parcel.java:2732) 
at android.os.BaseBundle.unparcel(BaseBundle.java:269) 
at android.os.Bundle.getSparseParcelableArray(Bundle.java:934) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1208) 
at …
Run Code Online (Sandbox Code Playgroud)

youtube android parcelable badparcelableexception android-youtube-api

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

Android Espresso:显示测试错误消息?

我有一个测试,当没有网络连接时应该测试错误信息的可见性,但我不知道如何让它显示?

@RunWith(AndroidJUnit4.class)
@LargeTest
public class PostsActivityTest {

@Rule
public final ActivityRule<PostsActivity> rule = new ActivityRule<>(PostsActivity.class);

PostsActivity postsActivity;

@Before
public void init() {
    postsActivity = rule.get();
}

@Test
public void testShouldShowErrorViewOnNetworkError() {
    postsActivity.showErrorMsg(); // doesn't work
    onView(withId(R.id.error_view)).check(matches(isDisplayed()));
}
Run Code Online (Sandbox Code Playgroud)

在打电话的时候,postsActivity.showErrorMsg();我得到一个崩溃声明android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

这是showErrorMsg()PostsActivity:

public void showErrorMsg() {
    errorView.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.谢谢!

编辑:使用runOnUiThread似乎工作.如果这是首选方式,我不知道.

@Test
public void testShouldShowErrorViewOnNetworkError() {
    postsActivity.runOnUiThread(new Runnable() {
        @Override
        public void …
Run Code Online (Sandbox Code Playgroud)

android unit-testing android-espresso

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

Android 一键登录:无法显示密码保存对话框

我正在尝试实现 Android 一键登录,但无法在此处显示此对话框:

密码保存对话框

我不断收到消息:com.google.android.gms.common.api.ApiException: 16: Skipping password saving since the user is likely prompted with Android Autofill.

我怎样才能解决这个问题?

代码:

private fun saveCredentials(email: String, password: String) {
    val signInPassword = SignInPassword(email, password)
    val savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build()

    // Show the password save dialog
    Identity.getCredentialSavingClient(this)
        .savePassword(savePasswordRequest)
        .addOnFailureListener {e ->
            Log.d(TAG, Log.getStackTraceString(e))
        }
        .addOnSuccessListener { result ->
            startIntentSenderForResult(
                result.pendingIntent.intentSender,
                REQUEST_CODE_SAVE_CREDENTIALS,
                null,   // fillInIntent
                0,      // flagsMask
                0,      // flagsValues
                0,      // extraFlags
                null)   // options
        }
}
Run Code Online (Sandbox Code Playgroud)

文档:https://developers.google.com/identity/one-tap/android/save-passwords

android google-signin google-one-tap

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

Android:我正在使用AppCompatv7库,但无法访问其任何图标?

所以我在访问库中的appcompat图标时遇到了麻烦,我不知道为什么.

// build.gradle
`compile 'com.android.support:appcompat-v7:23.2.0'`
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此图标: @drawable/abc_ic_clear_mtrl_alpha

// styles.xml
<style name="MyTheme" parent="Theme.AppCompat.Light">
    <item name="homeAsUpIndicator">@drawable/abc_ic_clear_mtrl_alpha</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误: Error:(12, 5) No resource found that matches the given name (at 'homeAsUpIndicator' with value '@drawable/abc_ic_clear_mtrl_alpha').

任何帮助表示赞赏谢谢.

resources icons android android-appcompat

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

Android:停止向Chromebook提供应用的最佳方法是什么?

我有一个应用程序在chromebook上遇到了一些问题,并希望停止向这些设备提供该应用程序。防止Chromebook获得应用程序的最佳方法是什么?

从文档看来,似乎有以下解决方案:https : //developer.android.com/topic/arc/manifest.html

1)在Google Play控制台中排除特定设备。

2)通过显式声明将android.hardware.touchscreen声明为安装应用所需的设备来过滤不带触摸屏硬件的设备。

我身上没有Chromebook,因此我无法真正测试。这些是最好的方法吗?

android chromebook

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