小编use*_*558的帖子

如果我在 onDestroy() 中调用 recycle(),“无法绘制回收位图”

我有两个活动:MainActivityActivity2

MainActivity 只是通过 Intent 打开秒一。

要返回MainActivityActivity2我按下“返回”按钮。

当我执行这些步骤时,应用程序崩溃:

  • 打开应用程序:MainActivity出现
  • 启动意图:Activity2出现
  • 按“返回”按钮:MainActivity出现
  • 启动Intent:由于此错误,我的应用程序崩溃:

    IllegalArgumentException:无法绘制回收位图

主活动.java:

Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

Activity2.java:

@Override
public void onBackPressed() {
    super.onBackPressed();
}

@Override
protected void onDestroy() {
    super.onDestroy();

    for(Map.Entry<Integer, ImageView> entry : mapImageViews.entrySet()) {
        ImageView imageView = entry.getValue();
        Drawable drawable = imageView.getDrawable();
        if (drawable instanceof BitmapDrawable) {
            BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
            Bitmap bitmap = bitmapDrawable.getBitmap();
            if(bitmap != …
Run Code Online (Sandbox Code Playgroud)

java android garbage-collection exception bitmap

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

R8 完整模式的真正作用是什么(积极优化)?

R8正式文件说要激活额外的优化我必须在插入此gradle.properties文件:

android.enableR8.fullMode=true
Run Code Online (Sandbox Code Playgroud)

文档说,为了使应用程序工作,我必须设置一些保留规则,但没有关于它如何工作以及它执行哪些操作的详细信息:

由于额外的优化使 R8 的行为与 ProGuard 不同,它们可能需要您包含额外的 ProGuard 规则以避免运行时问题。例如,假设您的代码通过 Java 反射 API 引用了一个类。默认情况下,R8 假定您打算在运行时检查和操作该类的对象——即使您的代码实际上没有这样做——并且它会自动保留该类及其静态初始化程序。

然而,当使用“完整模式”时,R8 不会做出这个假设,如果 R8 断言您的代码在运行时从不使用该类,它会从您的应用程序的最终 DEX 中删除该类。也就是说,如果您想保留类及其静态初始值设定项,您需要在规则文件中包含一个保留规则来做到这一点。

文档建议的常见问题解答的链接仅说明了这一点:

R8全模式

在完整模式下,R8 执行更积极的优化,这意味着可能需要额外的 ProGuard 配置规则。本节重点介绍使用完整模式时遇到的一些常见问题。

实际效果如何android.enableR8.fullMode

非常感谢!

obfuscation optimization android shrink android-r8

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

var目录的Symfony 4文件权限每次都会改变

我正在设置一个新服务器并安装了Ubuntu 18.04Apache2。我的项目存储在/var/www/project. 在apache2.conf我添加

<Directory /var/www/project/>
    AllowOverride All
    Order Allow,Deny
    Allow from All
</Directory>
Run Code Online (Sandbox Code Playgroud)

在我的虚拟主机文件中,我指向/var/www/project/public 当我转到服务器的 IP 地址时,我看到了我的项目并且一切正常,除了一件事:

每当我使用php bin/console cache:clear我的目录权限清除缓存时,都会var搞砸,这会导致生产环境中出现错误。

我可以解决这个问题:

chmod -R 777 var/
Run Code Online (Sandbox Code Playgroud)

但是即使我再次清除缓存,问题也会再次出现。我尝试了不同的用户,包括root,但总是同样的问题。我不明白是什么原因造成的。在文件权限的文档中,它说:

在 Symfony 中3.x,你需要做一些额外的工作来确保你的缓存目录是可写的。但这不再是事实!在 Symfony 中4,一切都会自动运行

那么不适合我,但是什么可能导致问题?

file-permissions symfony symfony4

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

jks 或 pkcs12:我应该使用哪一个来签署 Google Play 商店的 apk?

Android Studio 3.5.3 在创建我的新密钥库后,建议我使用以下命令对其进行转换:

keytool -importkeystore -srckeystore /path/myKeyStore.jks -destkeystore /path/myKeyStore.jks -deststoretype pkcs12

在 Web 和 SO 上,我阅读了一些关于它的内容(例如,pkcs12无论用于阅读它的编程语言如何,该格式都得到广泛支持)但我找不到这个问题的答案:

格式是否pkcs12与 Google Play 商店完全兼容以发布我的应用程序?

如果是,我应该使用哪一个来签署我的 apk,为什么?

非常感谢!

android jks pkcs#12 google-play android-studio

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

Symfony 2 Doctrine 内存使用

我正在使用实体存储库创建查询,它似乎存在内存泄漏。

在我的实体存储库类中:

echo 'mem 1 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$query = $this->createQueryBuilder('a')->select('a','b','c','...');
echo 'mem 2 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$r = $query->getQuery()->getResult();
echo 'mem 3 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$this->clear(true);
$query->getQuery()->free(true);
unset($r);
echo 'mem 4 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
Run Code Online (Sandbox Code Playgroud)

输出:

内存 1:5.0805282592773
内存 2:5.0998611450195
内存 3:91.49528503418
内存 4:77.939567565918

为什么释放内存后内存没有恢复到初始大小(5 MB)?

而且只能从 91 传到 77。

php memory doctrine symfony

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

将URL中不完整的文件名视为PHP?

我没有写这个网络代码.我只需要部署它....

$WEBROOT目录包括index.phplogin.php等等.

自动重定向URL index.php(仅在请求域URL时成功执行)是http://$HOST.$DOMAIN/login?p=$VALUE This返回代码404.

如果我手动将URL更改为 http://$HOST.$DOMAIN/login.php?p=$VALUE

登录页面成功显示.

我的第一个问题是我不知道在Apache文档中要搜索哪些关键字.这个问题似乎很接近.但是,我的实际文件有.php扩展名.我的问题是我必须假设所有的URL都只是请求file而不是file.php.

如何在Apache file.php返回404之前告诉Apache 查找file

php apache

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

Play 商店无法检测设备兼容性

我想通过 Google Play 商店将我的应用程序分发给尽可能多的用户,但我在更新的应用程序的兼容设备上遇到了奇怪的行为(我正在更新应用程序,保持相同的应用程序 ID;旧版本 -当前的在线生产版本 - 最后更新于 2021 年)。

我已经阅读了 Stack Overflow 上的所有相关问题以及官方 Android 文档。我正在使用最新版本的 Android Studio,构建 App Bundle 格式。

Play 控制台声明两个版本的兼容设备数量相同(大约 19k+)。

在某些设备上,新设备不兼容,但旧设备兼容并且可以安装。

以下是一些被 Play 商店检测为不兼容的设备(均未 root):

  • OnePlus Nord 采用 Qualcomm SDM765G,型号 AC2003,5G 八核,Android 12,OxygenOS Contributor,内核 4.19.157-perf+
  • EMUI HUAWEI Mate 20 Pro,型号 LYA-L09,GPU Turbo,EMUI 版本 12.0.0,处理器华为 Kirin 980,分辨率 3120x1440,“Mainline”软件更新 01-02-2023,Android 12
  • 红米Note 10 Pro、MIUI Global 14.0.2.0、Android 13 TKQ1
  • Galaxy A50,型号 SM-A505FN/DS,OneUI 3.1,Android 11,Google Play 商店于 2023 年 1 月 3 日更新,内核 4.14.113,Knox 3.7

我已经尝试过这些,但没有成功:

  • 要求用户清除Play Store应用程序和Play Services应用程序的缓存和数据
  • 要求用户更新其设备上的所有可能内容 …

android google-play

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

为什么is_infinite()对于字符串“ 592e5399”返回TRUE?

<?php

$number1 = 1;
$number2 = 0;

$number3 = $number1/$number2 ;
Run Code Online (Sandbox Code Playgroud)

$ number3将返回float(INF),这是可以的。

var_dump($number3 ); 
Run Code Online (Sandbox Code Playgroud)

为了识别INF,我可以使用is_infinite,如下所示。

$check_Is_INF = is_infinite($number3);
Run Code Online (Sandbox Code Playgroud)

上面的$ check_Is_INF将返回true-可以。

var_dump($check_Is_INF );
Run Code Online (Sandbox Code Playgroud)

但是,如果我检查以下字符串,为什么总是返回TRUE592e5399,如下所示

$number3 = '592e5399';
$check_Is_INF = is_infinite($number3);
var_dump($check_Is_INF );
Run Code Online (Sandbox Code Playgroud)

php

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

为什么 R8 不重命名所有方法和类?

我第一次尝试使用 R8 的 Android Studio 版本来执行混淆和代码优化。

\n

正如官方文档所说:

\n
\n

混淆你的代码

\n

混淆的目的是通过缩短应用程序\xe2\x80\x99s 类、方法和\n字段的名称来减小应用程序的大小。

\n
\n

我认为R8会重命名所有方法和类名,但是如果我通过“Build -> Analytics APK...”分析APK,我可以读取大部分原始方法和类名。

\n

在此输入图像描述\n在此输入图像描述

\n

Contenuti是 中提到的一个 Activity manifest.xml

\n

mostraViewnascondiView是我创建的方法,它们不在任何库中,它们不扩展任何内容,所以我希望看到它们的名称发生变化。

\n
void mostraView(View v)\n{\n     v.setVisibility(View.VISIBLE);\n}\nvoid nascondiView(View v)\n{\n     v.setVisibility(View.GONE);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

R8 的行为正确吗?

\n

如何设置 R8 来混淆所有这些,或者至少这两个?

\n

多谢!

\n

obfuscation android build android-studio android-r8

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

最大POST数据限制

我有这个问题:并非所有POST数据都是从浏览器发送的,可以在表单的操作页面上找到.

我需要知道:

  • 原因是什么?
  • 如何控制是什么原因?
  • 怎么解决这个问题?

操作页面不会返回任何错误(即使我set error_reporting(E_ALL);).服务器是Linux.表单的输入很多,有些是最大级别为两个嵌套键的数组(array[1][2]).

我尝试发送更少的输入并且它可以工作,但我需要使用页面中的所有输入.

我打印了表单操作页面收到的所有POST数据,并且$_POST变量中没有最后输入.

html php post

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

Recyclerview 不显示 kotlin

Recyclerview不显示在屏幕上,只显示白色背景。

难道有什么错误吗?请告诉我,谢谢。

Adapter
class NeedsAdapter(var context: Context) : RecyclerView.Adapter<NeedsAdapter.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NeedsAdapter.ViewHolder {
        var view = View.inflate(parent.context, R.layout.needs_item, null)
        var parms = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        view.layoutParams = parms
        return ViewHolder(view)
    }

    override fun getItemCount(): Int {
        return 10;
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    }


    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

    }

}
Run Code Online (Sandbox Code Playgroud)

分段

class NeedsFragment : Fragment() {

    private lateinit var adapter: NeedsAdapter
    private lateinit var layout: View
    private lateinit var recyclerView: …
Run Code Online (Sandbox Code Playgroud)

android listitem adapter kotlin android-recyclerview

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