小编jch*_*tof的帖子

返回应用程序时静态变量为null

在我的应用程序中有一个静态变量,当我从外部浏览器返回我的应用程序时,该变量被设置为null.如果我正在启动的外部网页足够复杂,似乎应用程序或其中某些部分被杀死.

如果应用程序被完全杀死然后从主要活动中重新启动就可以了,但重新启动来自启动浏览器的活动 - 并且它并不意味着设置应用程序状态以便在访问空静态变量时崩溃.这对我来说是一个六分之一的设备问题所以我需要一些建议.

是否有设置标志以防止此行为?

null static android android-activity

57
推荐指数
4
解决办法
3万
查看次数

Android DDMS v22.0.1无法使用Droid Razor 4.1.2生成systrace

我选择了几个跟踪标记,当我运行跟踪(从DDMS)时,我得到以下输出:

Unexpected error while collecting system trace. Unable to find trace start marker 'TRACE:':
error opening /sys/kernel/debug/tracing/options/overwrite: 
No such file or directory (2)
Run Code Online (Sandbox Code Playgroud)

error openi(在这里切断错误)

确实内核目录中没有调试文件,但哪种机制会生成必要的路径?

android ddms systrace

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

通过 ComposeView 互操作在 CoordinatorLayout 内编写 LazyColumn 滚动行为

问题 - 向下滚动会导致底部工作表滚动,而不是为 LazyColumn 提供滚动优先级(RecyclerView 没有此问题。它被 NestedScrollView 包裹)

我刚刚介绍了用 Compose LazyColumn 替换 CoordinatorLayout 内的 Recycler。协调器(作为底部工作表实现)本身可以在查看状态和展开状态之间自由滚动。我的问题是,当在 LazyColumn 中向下拖动项目区域时,底部工作表会滚动而不是 LazyColumn 。如果我在 LazyColumn 上先向上滚动,然后向下滚动(不释放),则 LazyColumn 会拾取滚动,并且滚动优先级将赋予 LazyColumn(预期行为)。

BottomSheetFragment
|-CoordinatorLayout
|--ConstraintLayout (BottomSheetBehavior)
|---MyListFragment
|----ComposeView
|-----Theme
|------Surface
|-------Box
|--------LazyColumn
Run Code Online (Sandbox Code Playgroud)

刚接触 Compose,所以我希望有人能告诉我如何纠正这种新的滚动行为?

**编辑 我通过切换协调器的 ^^ BottomSheetBehavior.isDragglable 来完成这项工作,但它确实需要我释放拖动,而不是从列表滚动平滑过渡到底部工作表滚动 - 任何人建议修复?:

fun MyUi(listener:Listener) {
    val listState = rememberLazyListState()

    LaunchedEffect(listState) {
        listState.interactionSource.interactions.collect {
            //at the top of the list so allow sheet scrolling
            listener.allowSheetDrag(listState.firstVisibleItemScrollOffset == 0)
        }
    }

    val nestedScrollConnection = remember {
        object : NestedScrollConnection {
            override …
Run Code Online (Sandbox Code Playgroud)

android vertical-scrolling android-jetpack-compose lazycolumn

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

Apk仅在调试模式下运行.Apk以Eclipse中的"Run"开始在断点处停止

我注意到之前已经问过,但我还没有找到答案.这个问题的主要说明是,当apk部署为"运行"时,Eclipse会在断点处停止

到目前为止,我已经完成了这些,并且没有一个从Project shell生成正确运行的"Run"构建 - > Run As - > 1. Android Application

•断开连接,卸载和重新安装apk并不能解决问题(这是一个平板电脑设备,而不是模拟器.)•使用文件系统可以编写所有项目和库项目
•全新的项目正常工作,例如他们没有在与问题项目相同的Eclipse工作空间中的"运行"模式中停止断点
•窗口 - >首选项 - >运行/调试(展开) - >启动"当工作空间包含断点时在调试模式下启动"设置为永不
•关闭并打开Eclipse
•在该透视图中"调试"选项卡下杀死所有正在运行的进程
•在Eclipse IDE中清除整个工作区,并通过删除主项目库和库项目依赖项的res和gen文件夹手动清除
•检查事件项目构建文件中的"debug"一词
•使用以下命令从命令行清理构建项目:ant clean then ant release

有趣的是,当我从命令行清理构建然后新安装新的apk时,如果Eclipse打开,调试器将附加到正在运行的进程并在第一个断点处停止!如果Eclipse关闭,程序将使用标准的"Waiting for Debugger"对话框等待调试器.

因此,构建过程中的某些内容(尚未弄清楚所有文件涉及的内容)和/或.metadata中的某些内容和/或某些依赖性.

编辑 我在以下位置找到了一个文件:

C:\Projects\Mobile\Android\.metadata\.plugins\org.eclipse.debug.core\.launches\MyProjectName.launch
Run Code Online (Sandbox Code Playgroud)

在xml中:

<launchConfiguration type="com.android.ide.eclipse.adt.debug.LaunchConfigType">
Run Code Online (Sandbox Code Playgroud)

不知道它是否是一个线索,但如果我删除文件Eclipse将只用它替换它.

编辑

*确认项目在构建并从另一台机器运行时运行正常,因此我怀疑这是我的工作机器的Eclipse工作区导致了这个问题.也许我需要抛弃所有工作区的元数据并重新开始.

debugging android release

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

方形布局边框与圆形内边缘

我正在尝试创建一个布局边框,其边角为正方形,内侧为圆形.我已经知道我需要创建一个由两个形状组成的.xml可绘制定义:一个具有笔划宽度和角半径,另一个仅具有笔划宽度:

可绘制/

round_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="4dp" android:color="#FF000000" />
    <padding android:left="7dp" android:top="7dp"
            android:right="7dp" android:bottom="7dp" />
    <corners android:radius="4dp" />
    <solid android:color="#FFC0C0C0" />
</shape> 
Run Code Online (Sandbox Code Playgroud)

square_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#FF000000" />
    <solid android:color="#FFC0C0C0" />
</shape> 
Run Code Online (Sandbox Code Playgroud)

这些中的每一个都作为边框独立工作,如下所示:

android:background="@drawable/round_border" 
Run Code Online (Sandbox Code Playgroud)

但当他们中的任何一个或两个被添加到项目列表可绘制时,如下所示:

composite_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <layer-list>
        <item android:drawable="@drawable/round_border"/>
        <!-- <item android:drawable="@drawable/square_border"/> -->
    </layer-list>
</shape> 
Run Code Online (Sandbox Code Playgroud)

和:

android:background="@drawable/composite_border"
Run Code Online (Sandbox Code Playgroud)

布局的背景是完全黑色而不仅仅是黑色边框.

任何人都知道如何使图层列表适用于此任务?

android list border layer

9
推荐指数
2
解决办法
3万
查看次数

New Maven安装:mvn -version java.lang.ClassNotFoundException

所以我已经安装了maven,其中包含以下细节:

安装路径:

C:\Program Files\Apache Software Foundation\apache-maven-3.0.3
Run Code Online (Sandbox Code Playgroud)

环境变量:

JAVA_HOME C:\Progra~1\Java\jdk1.6.0_25
M2_HOME C:\Program Files\Apache Software Foundation\apache-maven-3.0.3
Run Code Online (Sandbox Code Playgroud)

用户大战:

M2 %M2_HOME%\bin
PATH %JAVA_HOME%\bin;%M2%;
Run Code Online (Sandbox Code Playgroud)

现在,从命令行

C:\>javac -version
javac 1.6.0_25

C:\>mvn -version
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/c
lassworlds/launcher/Launcher

Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.lau
ncher.Launcher
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClss(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher
.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

到目前为止,由于Eclipse,我已经完全不受Java命令行构建细节的限制,但看起来它在找到/ boot目录中的plexus-classworlds-2.4.jar时遇到了问题.我需要一些额外的路径信息吗?

谢谢!

java maven

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

WPF DataGrid - 编辑结束后单元格的新值

在我的系统中,我需要捕获并发送单元格编辑的旧值和新值.我已经读过你可以通过检查事件DataGridCellEditEndingEventArgs的EditingElement来做到这一点:

    _dataGrid.CellEditEnding += (sender, e) => {
      var editedTextbox = e.EditingElement as TextBox;

      if (editedTextbox != null)
      MessageBox.Show("Value after edit: " + editedTextbox.Text);
}
Run Code Online (Sandbox Code Playgroud)

在我的例子中,数据是字典,因此EditingElement是ContentPresenter

var editedTextbox = e.EditingElement as ContentPresenter;
if (editedTextbox != null)
  MessageBox.Show("Value after edit: " + editedTextbox.Content);
Run Code Online (Sandbox Code Playgroud)

内容是原始内容,而不是新编辑的值.

我怎样才能让它工作:

_dataGrid.SomeEvent(sender, e)->{
  SendValues(e.oldCellValue, e.newCellValue);
}
Run Code Online (Sandbox Code Playgroud)

.net c# wpf datagrid

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

将项目更新到稳定协同程序Kotlin 1.3.0 + Coroutines 1.0.0错误

我在我的项目中指定了以下内容:

dependencies {
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0'
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.0'
  implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version'
}
Run Code Online (Sandbox Code Playgroud)

项目

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        google()
        jcenter()
    }

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
Run Code Online (Sandbox Code Playgroud)

包装纸

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
Run Code Online (Sandbox Code Playgroud)

Gradle同步完成没有错误,但是我的每次调用都是如此

GlobalScope.launch {}
Run Code Online (Sandbox Code Playgroud)

'launch'标有以下错误:

'不支持[无法使用api版本低于1.3的版本协同程序]'

我已经失效和清理重建 - 我错过了什么?

**编辑

我可以看到生成错误的位置:

科特林/编译器/前端/ SRC /组织/ JetBrains公司/科特林/决心/电话/跳棋/ coroutineCallChecker.kt

fun checkCoroutinesFeature(languageVersionSettings: LanguageVersionSettings, diagnosticHolder: DiagnosticSink, reportOn: PsiElement) {
    if (languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)) {
        if (languageVersionSettings.apiVersion < ApiVersion.KOTLIN_1_3) {
            diagnosticHolder.report(Errors.UNSUPPORTED.on(reportOn, "cannot use release coroutines with api version less than 1.3"))
        }
        return
    }
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlinx.coroutines

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

IllegalArgumentException:错误的州级

对于Activity,我有两个不同的纵向和横向布局文件.一个方向的元素与另一个方向的元素有直接关系,除了它们可能与基类相关但不是完全相同的类型,并且它们具有相同的id.例如:

布局/ main_layout.xml:

...
<ListView
 android:id="@+id/current_news_list"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"/>
Run Code Online (Sandbox Code Playgroud)

然后在layout-land/main_layout.xml中:CustomListView是android.widget.AdapterView的子类

...
<CustomListView 
 android:id="@+id/current_news_list"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"/>
Run Code Online (Sandbox Code Playgroud)

更改方向时会抛出"IllegalArgumentException:错误的状态类".这是预期的行为吗?我没有覆盖配置更改代码,我让活动被彻底销毁和重建.我已避免在布局层次结构中同时具有相同标识符的其他实例.

android illegalargumentexception

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

Kotlin 布局宽度和高度绑定

我已经用谷歌搜索并尝试了示例,但我无法执行绑定 FrameLayout 宽度和高度。其他绑定工作正常。

最终解决方案: 示例项目:https : //github.com/jchristof/SimpleDatabindingExample

面板.xml:

<layout>
    <data class="PanelControlBinding">
        <variable
            name="panel"
            type="com.example.viewmodels.ContainerViewModel"/>
    </data>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="@{panel.width}"
        android:layout_height="@{panel.height}"
        android:translationX="@{panel.left}"
        android:translationY="@{panel.top}"
        android:background="@{panel.background}"
        >

    </FrameLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

binding.kt kotlin 文件

@BindingAdapter("android:layout_width")
fun setLayoutWidth(view: View, width: Int) {
    val layoutParams = view.layoutParams
    layoutParams.width = width
    view.layoutParams = layoutParams
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了许多关于宽度类型的排列(将其设置为 Float)以及删除 android: 命名空间,将 setLayoutWidth 声明为静态伴随对象等。

我继续收到错误:

Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'android:layout_width' with parameter type java.lang.Integer on android.widget.FrameLayout.
file:D:\Projects\strandXmlAppRunner\app\src\main\res\layout\panel.xml
loc:9:32 - 9:42
****\ …
Run Code Online (Sandbox Code Playgroud)

binding android kotlin

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