小编Ada*_*itz的帖子

Android Studio 4.1.1 macOS 全屏错误

将 Mac 更新为 Big Sur 后出现问题11.0.1

所有插页式对话框窗口、设备管理器、首选项、SDK 选项等都不会在全屏模式下作为插页式/对话框打开,而是作为应用程序内的选项卡打开。然后,Android Studio 冻结并且没有响应。

即:提交更改窗口

在此处输入图片说明

任何想法如何解决它?谢谢!

macos android android-studio

136
推荐指数
3
解决办法
8383
查看次数

Android 模拟器渲染问题 - macOS Big Sur 更新后

macOS Big Sur11.0.1更新后,Android 模拟器开始显示图像渲染问题。

问题

模拟器显示窗口正在重复设备图像。Android 的 IssueTracker 中记录了一个问题

状况

  1. 重新调整大小:当模拟器窗口被调整大小、增加或减少时
  2. 方向变化:纵向到横向,反之亦然

在此处输入图片说明 在此处输入图片说明

尝试的解决方案

  • 清除与模拟器擦除数据Android设备管理器
  • 创建一个新的模拟器实例。

配置

安卓工作室

  • 安卓工作室 4.1.1
  • Build #AI-201.8743.12.41.6953283,建于2020年11月4日
  • 运行时版本:1.8.0_242-release-1644-b3-6915495 x86_64
  • VM:JetBrains sro 的 OpenJDK 64 位服务器 VM
  • macOS 10.16
  • GC:ParNew、ConcurrentMarkSweep
  • 内存:1979M
  • 核心数:16
  • 注册表:ide.new.welcome.screen.force=true,external.system.auto.import.disabled=true 非捆绑插件:com.android.tool.sizereduction.plugin,com.thoughtworks.gauge,org.jetbrains。 kotlin, cn.wjdghd.unique.plugin.id, mobi.hsz.idea.gitignore, com.developerphil.adbidea

模拟器

  • 名称:Pixel_3a_API_29
  • CPU/ABI:Google Play Intel Atom (x86)
  • 路径:/Users/adamhurwitz/.android/avd/Pixel_3a_API_29.avd
  • 目标:google_apis_playstore [Google Play](API 级别 29)
  • 皮肤:1080x2220
  • SD卡:512M
  • fastboot.chosenSnapshotFile:
  • runtime.network.speed:满
  • hw.加速度计:是的
  • hw.device.name: pixel_3a
  • hw.lcd.width: 1080
  • hw.initialOrientation:纵向
  • image.androidVersion.api: 29
  • tag.id: google_apis_playstore
  • hw.mainKeys: 没有
  • hw.camera.front:模拟
  • avd.ini.displayname:Pixel …

android android-emulator android-studio macos-big-sur

45
推荐指数
4
解决办法
2718
查看次数

如何将消息从Flutter传递给Native?

如果需要与特定的API /硬件组件进行交互,您如何将信息从Flutter传回Android/Native代码?

是否有任何事件频道可以通过其他方式发送信息或类似于回调?

  1. 所述platform_channel文档指出"方法的调用,也可在相反方向上发送的,与平台充当客户端在执行达特方法.这方面的一个具体的例子是quick_actions插件 ".在这种情况下,我没有看到本机端如何从Flutter接收消息.
  2. 看起来像BasicMessageChannel的send()方法可用于将"指定的消息发送到此通道上的平台插件".任何人都可以提供一个简单的实现示例吗?

android ios dart flutter

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

Android View Binding - 清除Fragment生命周期中的绑定

为什么在 Fragment 中实现Android 视图绑定时清除 in 很重要bindingonDestroyView

如文档所示,在片段中使用视图绑定,以及 Android 架构组件示例binding在 中启动onCreateView,并在 中清除onDestroyView

binding与在不清除的情况下启动相比,实施此操作有什么好处onDestroyView?如果没有显式清除实例变量binding,则应在 Fragment 销毁时将其清除。

private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    _binding = ResultProfileBinding.inflate(inflater, container, false)
    val view = binding.root
    return view …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-lifecycle kotlin android-viewbinding

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

Espresso测试失败:UsageTracker.java中没有接口方法trackUsage()

我收到运行时错误当在Espresso测试中运行的行滚动到RecyclerView列表中的某个元素时,UsageTracker.java中没有接口方法trackUsage():

   onView(withId(R.id.recyclerView)).perform(scrollTo(hasDescendant(withText(text))));
Run Code Online (Sandbox Code Playgroud)

我正在使用RecyclerViewActions作为scrollTo()方法.

以下是我当前的配置和gradle依赖项:

  • Android Studio 3.0 Canery 9
  • compileSdkVersion 25
  • buildToolsVersion"26.0.1"
  • JUnit的:JUnit的:4.12
  • com.android.support.test:亚军:1.0.0
  • com.android.support.test:规则:1.0.0
  • com.android.support.test.espresso:浓咖啡的contrib:2.2.2
  • com.android.support.test.espresso:咖啡核:2.2.2
  • Android支持库:25.3.1

另外,对于每个androidTestCompile,我使用以下排除:

  • 排除组:'com.android.support',模块:'appcompat'
  • 排除组:'com.android.support',模块:'support-v4'
  • 排除组:'com.android.support',模块:'support-annotations'
  • 排除模块:'recyclerview-v7'

完整的错误消息:没有接口方法trackUsage(Ljava/lang/String;)类Landroid/support/test/internal/runner/tracker/UsageTracker中的V; 或其超级类('android.support.test.internal.runner.tracker.UsageTracker'的声明出现在/data/app/adamhurwitz.github.io.doordashlite.test-2/base.apk)

junit android unit-testing android-espresso

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

弹出片段后的多个LiveData观察者

问题

摘要:导航到新片段,弹出新片段并返回到原始片段后,片段中会触发多个LiveData 观察器.

详细信息:该体系结构由MainActivity组成,MainActivityHomeFragment作为MainActivity 导航图中起始目标.HomeFragment中是一个以编程方式夸大的PriceGraphFragment.该HomeFragment使用导航组件,推出一个新的子片段ProfileFragment.在背面按下,弹出ProfileFragment,应用程序返回到托管PriceGraphFragment的HomeFragment.PriceGraphFragment是多次调用Observer的地方.

我正在记录Observer发出的HashMap的哈希码,当我转到配置文件片段时,它会显示2个唯一的哈希码,弹出配置文件Fragment,然后返回价格片段.当我在不启动配置文件Fragment的情况下旋转屏幕时,这与从HashMap看到的一个哈希码相反.

履行

  1. 导航组件在HomeFragment中启动新的ProfileFragment.

    view.setOnClickListener(Navigation.createNavigateOnClickListener( R.id.action_homeFragment_to_profileFragment, null))

  2. 在Fragment中创建ViewModel(PriceGraphFragment).已记录ViewModel,并且具有多个Observers的数据仅在ViewModel中初始化一次数据.

    override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) priceViewModel = ViewModelProviders.of(this).get(PriceDataViewModel::class.java) }

  3. 从原始Fragment(PriceGraphFragment)中的ViewModel中侦听数据.这被多次调用,但是只有在加载Fragment时才会有一个Observer.

    priceViewModel.graphLiveData.observe( this, Observer { priceGraphDataMap: HashMap<Exchange, PriceGraphLiveData>? -> // This is being called multiple times. })

试图解决方案

  1. onCreate()方法中创建FragmentViewModel. priceViewModel = ViewModelProviders.of(this).get(PriceDataViewModel::class.java)
  2. 使用Fragment的活动和子Fragment的父Fragment创建ViewModel.
    priceViewModel = ViewModelProviders.of(activity!!).get(PriceDataViewModel::class.java)

    priceViewModel = ViewModelProviders.of(parentFragment!!).get(PriceDataViewModel::class.java) …

android android-fragments kotlin android-navigation android-livedata

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

如何高效查询带有两个 WHERE 子句的表 (Android Room)

假设我有一个对象

class Person {
    String firstName;
    String lastName;
    ... other fields...
}
Run Code Online (Sandbox Code Playgroud)

和一个包含

@Entity
class DatabaseTable {
    String firstName;
    String lastName;
    ... other unrelated fields from person...
}
Run Code Online (Sandbox Code Playgroud)

现在在我的道中,我有

@Query("SELECT * FROM DatabaseTable WHERE " +
        " firstName = :firstName AND lastName = :lastName")
List<DatabaseTable> getAll(String firstName, String lastName);
Run Code Online (Sandbox Code Playgroud)

我有要从中查询 DatabaseTable 的列表。

Person("Apple", "Kohn", ...)
Person("Benny", "Lorie", ...)
Person("Cindy", "May", ...)
... 
Run Code Online (Sandbox Code Playgroud)

我将如何有效地提取数据库表?为我列表中的每个 Person 调用 dao 似乎不正确。

编辑:

我想知道如何使用单个查询来检索结果列表。

我知道在后台 Room 使用 ContentValue 循环遍历实体列表。有没有办法让我们创建自己的 contentValue 来传递给 Room?

像下面这样的事情可能吗?

getAllWithPairs( List<String> …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android kotlin android-room

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

屏幕旋转后,Android Arch Components ViewModel和LiveData触发器

我在使用时遇到问题,ViewModel而且LiveData我是使用ViewModel和LiveData arch组件的新手,并且在使用fragments和旋转屏幕时出现问题,观察者会被触发...我试图移动

viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java) 在所有片段生命周期方法中但没有成功.

我的场景非常简单:

  1. 登录屏幕上有电子邮件和密码
  2. 用户点击"登录"按钮
  3. viewmodel调用login(email, password)并设置LiveData对象的值
  4. 只是为了现在简单的展示吐司

在这一点上一切都好.但是当我旋转屏幕时,Toast再次出现而没有任何用户交互.

我是否必须在onDestroyView()中执行某些操作?

提前致谢!

android android-livedata android-viewmodel android-architecture-components

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

初始化后如何修改 Kotlin Coroutine Flow 值?

预期的

初始化 Kotlin Coroutine Flow 并在 Flow 创建后修改其值。

所需的功能类似于 MutableLiveData 的功能setValue,它允许将数据添加到现有的 MutableLiveData 对象。在下面的示例中setValue,调用FeedViewModel.kt中的_feedMutableLiveData 值以更新该值。

这按预期工作,发出FeedFragment.kt 中的值

FeedViewState.kt

data class _FeedViewState(
    val _feed: MutableLiveData<List<Tweet>> = MutableLiveData()
)

data class FeedViewState(private val _feedViewState: _FeedViewState) {
    val feed: LiveData<List<Tweet>> = _feedViewState._feed
}
Run Code Online (Sandbox Code Playgroud)

FeedViewModel.kt

class FeedViewModel(...) : ViewModel() {
    private val _feedViewState = _FeedViewState()
    val feedViewState = FeedViewState(_feedViewState)
    init {
        viewModelScope.launch(Dispatchers.IO) {
            feedRepository.getFeed().collect { results ->
                when (results.status) {
                    LOADING -> ...
                    SUCCESS -> …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines kotlin-coroutines-flow

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

Stetho:在控制台中看不到网络呼叫

使用Stetho的一切都在我的示例应用程序中运行得很好,我在浏览了这个YouTube教程(SQLite,SharedPreferences show)之后进行了测试,除了看到我喜欢的网络调用.

我在加载应用程序时进行了大量的API调用.例如,在我的Service.java类中,如下面的链接所示.也许它没有出现在Stetho中,因为API调用在应用程序加载之前发生,然后才能打开Stetho.任何想法都将得到赞赏,以使此功能正常工作.

我在MainActivity.java中初始化Stetho.在onCreate()我有

    // Initialize Stetho
    Stetho.initialize(
            Stetho.newInitializerBuilder(this)
                    .enableDumpapp(new SampleDumperPluginsProvider(this))
                    .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
                    .build());
Run Code Online (Sandbox Code Playgroud)

然后我还在底部加入了一个Stetho Class.

// Create class for Stetho
private static class SampleDumperPluginsProvider implements DumperPluginsProvider {
    private final Context mContext;

    public SampleDumperPluginsProvider(Context context){mContext = context;}

    @Override
    public Iterable<DumperPlugin> get() {
        ArrayList<DumperPlugin> plugins = new ArrayList<>();
        for (DumperPlugin defaultPlugin : Stetho.defaultDumperPluginsProvider(mContext).get()) {
            plugins.add(defaultPlugin);
        }
        //plugins.add(new SyncAdapterFragment());
        return plugins;
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,我也有适当的依赖

compile 'com.facebook.stetho:stetho:1.3.0'
Run Code Online (Sandbox Code Playgroud)

谢谢!

java android stetho

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