小编Sol*_*vek的帖子

android.view.InflateException:二进制XML文件行#12:错误膨胀类<unknown>

我收到了很多在subj中显示的类型的错误.这些错误似乎是偶然的,我无法重现它们.从堆栈我可以了解到我的不同布局资源可能会出现这样的错误.XML的行也在变化.

谁能解释为什么会出现这种错误?我能做些什么来解决这个问题?

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. …
Run Code Online (Sandbox Code Playgroud)

xml resources android android-inflate

140
推荐指数
12
解决办法
29万
查看次数

如何区分Switch,Checkbox Value是由用户还是以编程方式更改(包括保留)?

setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // How to check whether the checkbox/switch has been checked
                // by user or it has been checked programatically ?

                if (isNotSetByUser())
                    return;
                handleSetbyUser();
            }
        });
Run Code Online (Sandbox Code Playgroud)

如何实现方法isNotSetByUser()

checkbox android onchange listener

99
推荐指数
4
解决办法
2万
查看次数

Jetpack Compose 中图像的无限旋转

如何让我的图像无限旋转?

这是我的代码,但动画不起作用

 val angle: Float by animateFloatAsState(
            targetValue = 360F,
            animationSpec = infiniteRepeatable(
                tween(2000))
        )
        Image(
            painter = painterResource(R.drawable.sonar_scanner),
            "image",
            Modifier
                .fillMaxSize()
                .rotate(angle),
            contentScale = ContentScale.Fit
        )
Run Code Online (Sandbox Code Playgroud)

animation android android-jetpack-compose

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

Jetpack Compose 中的下拉按钮/轮式选取器/微调器

Jetpack Compose 中是否有针对诸如 Spinner/Wheel Picker 或 Dropdown Button 之类的视觉组件的标准实现?

android android-spinner android-jetpack-compose android-compose-dropdownmenu

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

我希望调试器打开java文件而不是类(来自依赖库)

在eclipse工作集中,我有一个android库和一个使用这个库的应用程序.当我在java文件中设置断点时,从应用程序调试器停止并且java文件可用.但是当我调试依赖库而不是打开文件时,带有"class"扩展名的java扩展文件在调试器中打开.是否有可能使eclipse打开"java"文件而不是"类"?

eclipse debugging

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

单元测试kohana基础项目是否有任何好的教程(示例)?

我正在寻找PHPUnit在KohanaPHP框架上测试项目的最佳实践.

phpunit kohana

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

如何将活动带到前台(或创建,如果不存在)?

我正在拦截带有一些信息的短信.然后在我的SmsListener中,我正在创建状态栏中显示的通知.然后,当用户点击我想要的通知时

  1. 将MainActivity带到前台(如果此类活动尚不存在,则应创建它)
  2. 从短信传递数据
  3. 根据此MainActivity中的此数据执行一些ui更改

我的活动被定义为

    <activity
        android:name=".MainActivity"
        android:screenOrientation="sensor"
        android:label="@string/app_name"
        android:launchMode="singleTask"/>
Run Code Online (Sandbox Code Playgroud)

活动启动为

 Intent i = new Intent();
 i.setClass(context, MainActivity.class);
 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 context.startActivity(i);
Run Code Online (Sandbox Code Playgroud)

同样在我的活动中,我已经重写了onNewActivity方法

 @Override
 public void onNewIntent(Intent intent){
    super.onNewIntent(intent);

    // I have data from broadcast in intent variable passed to this activity
    processDataFromBroadcast(intent);
}
Run Code Online (Sandbox Code Playgroud)

如果MainActivity已经存在,它可以正常工作,但是如果MainActivity不存在则会启动但是不会调用onNewIntent

然后我尝试从onCreate调用processDataFromBroadcast : processDataFromBroadcast(getIntent()). 第一次将数据从我的广播正确传递到活动.但是,如果MainActivity被发送到后台然后再次被带到前台,则调用onCreate或onNewIntent,并且再次执行processDataFromBroadcast,并通过广播发送意图,因此我的MainActivity会在应用程序带到前台时每次使用广播数据进行更新 - 后者是不需要的,我怎么能让我的活动在第一次处理后忘记这个意图. 这是示例应用程序.

android broadcast task android-activity

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

非拉伸ScrollView

我在衬里布局中有一个滚动视图,这是我的布局文件

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <!-- Other widgets go here -->
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <!-- Scroll view content -->
    </ScrollView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我希望ScrolView的高度取决于其内容 - 包装它,但是如果这个高度使整个布局高度超过屏幕尺寸,则应该将其固定以适应屏幕的高度.如何实现呢?

android scrollview

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

无法从 composalbe 函数创建视图模型

我有一个视图模型。我正在使用希尔特。我可以从活动创建这个视图模型,就像这样

val model: ProfileViewModel by viewModels()
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从可组合函数创建此视图模型时

import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.viewmodel.compose.viewModel

@Composable
fun ProfileScreen(){
    val model: ProfileViewModel = viewModel()
    Button(onClick = {
        model.logout()
    }){
        Text(stringResource(R.string.log_out))
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误

2021-04-22 10:01:55.503 10482-10482/com.pulsariodev E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pulsariodev, PID: 10482
    java.lang.RuntimeException: Cannot create an instance of class com.pulsario.ui.profile.ProfileViewModel
        at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221)
        at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278)
        at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:112)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
        at androidx.lifecycle.viewmodel.compose.ViewModelKt.get(ViewModel.kt:78)
        at androidx.lifecycle.viewmodel.compose.ViewModelKt.viewModel(ViewModel.kt:63)
        at com.pulsario.ui.profile.ProfileScreenKt.ProfileScreen(ProfileScreen.kt:23)
        at com.pulsario.ui.main.MainScreenKt$MainScreen$2$1$1$1.invoke(MainScreen.kt:60)
        at com.pulsario.ui.main.MainScreenKt$MainScreen$2$1$1$1.invoke(MainScreen.kt:59)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
        at androidx.navigation.compose.NavHostKt$NavHost$5$1$1.invoke(NavHost.kt:138)
        at …
Run Code Online (Sandbox Code Playgroud)

dependency-injection viewmodel android-jetpack-compose

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

Jetpack Compose RC01 中缺少 AnimatedImageVector

AnimatedImageVectorJetpack Compose 1.0.0-rc01 中不再存在,而且功能也animatedVectorResource缺失。

如何更换它们?

animation android android-jetpack-compose

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

需要更有效的暂停循环方式

是否可以重写此代码以更好地使用处理器?我有一个类,它在一个单独的线程中使用固定的周期执行一些任务.有时可以暂停和恢复此过程.目前我正在使用暂停的标志,它工作正常,但这样的循环仍然会在进程暂停时加载处理器.有可能解决这个问题吗?

private boolean mIsCanceled = false;
private boolean mIsPaused = true; // TODO more efficient for processor way of pausing is required
private final Thread mTimerThread = new Thread(new Runnable() {
    @Override
    public void run() {
        while(!mIsCanceled){
            try {
                Thread.sleep(UPDATE_PERIOD);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (!mIsPaused){
                doStep();
            }
        }
    }
});

public MyClass(){
    mTimerThread.start();
}

private void pause(){
    mIsPaused = true;
}

private void resume(){
    mIsPaused = false;
}

private void doStep(){
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

请提供我的代码的替代实现. …

java concurrency multithreading android

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

自动添加帐户

我的应用程序需要从服务器同步一些数据.我添加了必要的类(类似于SampleSyncAdapter),现在我可以通过"设置/同步和帐户"添加帐户.但是我希望在安装应用程序之后已经添加了我的帐户和工作同步(我不希望用户在设置中进行任何手动更改).这该怎么做?

account android synchronization accountmanager

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

如何使 Jetpack Compose Image 无限动画

我有一个animated-vector可绘制的。我希望这个动画矢量在显示该图像时循环动画。对此找不到好的解决方案。

        val image = animatedVectorResource(R.drawable.no_devices_animated)
        var atEnd by remember { mutableStateOf(false) }
        Image(
            painter = image.painterFor(atEnd),
            "image",
            Modifier.width(150.dp).clickable {
                atEnd = !atEnd
            },
            contentScale = ContentScale.Fit)
Run Code Online (Sandbox Code Playgroud)

当我点击图像时,它会产生动画,但随后停止。这是一种无限的进步。

animation android-jetpack-compose

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