我已将Android Studio更新为新的Canary版本,并更新了我的gradle文件.当我启动我的应用程序时run,我收到以下错误:
Process: io.github.siddharthvenu.saltanalysis, PID: 23244
java.lang.SecurityException: Signature check failed for io.github.siddharthvenu.saltanalysis
at android.os.Parcel.readException(Parcel.java:1915)
at android.os.Parcel.readException(Parcel.java:1861)
at com.google.android.gms.common.internal.zzv$zza$zza.zza(Unknown Source:41)
at com.google.android.gms.common.internal.zzf.zza(Unknown Source:0)
at com.google.android.gms.internal.zzzf$zzc.zzxQ(Unknown Source:0)
at com.google.android.gms.internal.zzzf$zzf.run(Unknown Source:0)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at com.google.android.gms.internal.zzabx.run(Unknown Source:7)
at java.lang.Thread.run(Thread.java:764)
Run Code Online (Sandbox Code Playgroud)
编辑:我发现上述错误是AdView由Android 引起的.以某种方式在我的应用中包含广告会让它崩溃.
我以为这可能是因为我没有签署apk,所以我签了它(debug),然后尝试使用adb install命令安装它.我得到以下输出:
Failed to install alpha_test_006.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
Run Code Online (Sandbox Code Playgroud)
我的AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.github.siddharthvenu.saltanalysis">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_material_chemical"
android:label="@string/app_name"
android:supportsRtl="true" …Run Code Online (Sandbox Code Playgroud) 我有自己的自定义适配器类,称为 WordAdapter,我正在使用媒体播放器(pronounce在 WordAdapter 类中命名为-global 变量)。我有不同的活动,其中每个列表项都有一个线性布局(命名为linearLayout)。我正在设置onClickListener它,以便在单击线性布局时播放声音文件。播放完那个声音后,我想释放任何不需要的记忆。但我不知道我是否应该使用release()或reset()。我之前已经检查过之前在SO上提出的问题,但我认为它没有为我的情况提供准确的解释以使用哪种方法。
注意:在此之后我也应该能够播放其他音频文件(完成播放此音频文件后,当我在同一活动中单击其他项目时,我应该能够听到声音。)
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
pronounce = MediaPlayer.create(context, currentWord.getPronounceResourceID());
pronounce.start();
pronounce.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer player) {
//pronounce.release();
//pronounce.reset();
}
});
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个 AMD CPU,使用 Windows Server 2019(不要问为什么),我启用了 Hyper-V。但是,在我的(稳定渠道)Android Studio 中,它仍然显示
不幸的是,您的计算机不支持硬件加速虚拟化。以下是您的一些选择:
1)使用物理设备进行测试
2)在具有支持VT-x和NX的Intel处理器的Windows/OSX计算机上进行开发
3)在支持VT-x或SVM的Linux计算机上进行开发
4) 使用基于 ARM 系统映像的 Android 虚拟设备(这比硬件加速虚拟化慢 10 倍)
启用 Hyper-V 的模拟器选项是否仅在 Android Studio 的测试版通道中可用?如何在Windows Server 2019中为Android模拟器启用硬件加速?
我的应用程序在清单中具有以下权限:
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
我通过 Android 11 手机中的“设置”手动启用了所有权限。但是,如果我用来ActivityCompat.checkSelfPermission(this,(Manifest.permission.READ_PHONE_STATE))检查是否READ_PHONE_STATE已授予权限,结果始终是PERMISSION_DENIED。
然后我使用了ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), 102),它只是立即调用onRequestPermissionsResult授予结果PERMISSION_DENIED。
我在两台 Android 11 设备(一台物理设备,一台模拟器)上复制了此内容,并尝试更改包名称、卸载并重新安装应用程序等。
我在这个链接中看到了这段代码 - http://www.tutorialspoint.com/cplusplus/cpp_pointers_vs_arrays.htm.看看第一段代码.
#include <iostream>
using namespace std;
const int MAX = 3;
int main ()
{
int var[MAX] = {10, 100, 200};
int *ptr;
// let us have array address in pointer.
ptr = var;
for (int i = 0; i < MAX; i++)
{
cout << "Address of var[" << i << "] = ";
cout << ptr << endl;
cout << "Value of var[" << i << "] = ";
cout << *ptr << endl;
// …Run Code Online (Sandbox Code Playgroud)