小编Lin*_*ino的帖子

Android Material和appcompat Manifest合并失败

我有下一个年级

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.android.material:material:1.0.0-rc01'
}
Run Code Online (Sandbox Code Playgroud)

但是当我想构建应用程序时,我会得到下一个日志:

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Run Code Online (Sandbox Code Playgroud)

好! 去清单并执行:

<?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="ru.chopcode.myapplication">

    <application
        tools:replace="android:appComponentFactory"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

然后我在Logcat中收到此错误:

Manifest merger failed with multiple errors, see logs that I have …
Run Code Online (Sandbox Code Playgroud)

android build.gradle android-gradle-plugin gradle-plugin

193
推荐指数
19
解决办法
29万
查看次数

Android 11 打开失败:EACCES(权限被拒绝)

我正在开发一个应用程序。我将不同的文件类型(例如 docx、pdf、zip)上传到 WAMP 服务器。以下是我的内部存储的文件路径。

/storage/emulated/0/WhatsApp/Media/WhatsApp Documents/api.txt

我已在清单文件中添加并允许存储权限,并在运行时读取文件。但是,没有可用的内部存储权限请求。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

对于 Android 10 我也使用了这个属性

android:requestLegacyExternalStorage="true"
Run Code Online (Sandbox Code Playgroud)

但当我从内部存储读取文件进行上传时,我在三星 Galaxy 上的 Android 11 操作系统(又名 Android R)上收到此错误。

java.io.FileNotFoundException:/storage/emulated/0/WhatsApp/Media/WhatsApp Documents/api.txt:打开失败:EACCES(权限被拒绝)

java android android-studio

24
推荐指数
4
解决办法
6万
查看次数

ADB Shell无权访问

我正在尝试将 apk 安装到工作配置文件用户

adb shell pm install --user 12 /data/test.apk
Run Code Online (Sandbox Code Playgroud)

adb 返回错误。

C:\Users\tesrter\Downloads>adb shell pm install --user 12 /data/test.apk
Security exception: Shell does not have permission to access user 12
 com.android.server.am.ActivityManagerService.handleIncomingUser:14895 android.app.ActivityManager.handleIncomingUser:3834 com.android.server.pm.PackageManagerShellCommand.translateUserId:2756

java.lang.SecurityException: Shell does not have permission to access user 12
 com.android.server.am.ActivityManagerService.handleIncomingUser:14895 android.app.ActivityManager.handleIncomingUser:3834 com.android.server.pm.PackageManagerShellCommand.translateUserId:2756
        at com.android.server.am.UserController.handleIncomingUser(UserController.java:1883)
        at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:14895)
        at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:3834)
        at com.android.server.pm.PackageManagerShellCommand.translateUserId(PackageManagerShellCommand.java:2756)
        at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:2762)
        at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1072)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:175)
        at android.os.ShellCommand.exec(ShellCommand.java:104)
        at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24259)
        at android.os.Binder.shellCommand(Binder.java:888)
        at android.os.Binder.onTransact(Binder.java:772)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4879)
        at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4661)
        at com.android.server.pm.HwPackageManagerService.onTransact(HwPackageManagerService.java:534)
        at android.os.Binder.execTransactInternal(Binder.java:1028)
        at android.os.Binder.execTransact(Binder.java:1001)
Run Code Online (Sandbox Code Playgroud)

android adb

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

由于系统广播中的“RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED”错误,应用内更新应用在 Android 14 中崩溃

我有一个使用应用程序内更新的 Android 应用程序。以 android 14 (API 34) 为目标后,应用程序将因以下错误而无法启动:

\n
FATAL EXCEPTION: main\nProcess: no.norva24.mslam, PID: 8281\njava.lang.RuntimeException: Unable to start activity\nComponentInfo{no.norva24.mslam/no.norva24.mslam.ui.activities.MainActivity}: java.lang.SecurityException: no.norva24.mslam: One\nof RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered\nexclusively for system broadcasts\n    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782)\n    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922)\n    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)\n    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)\n    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)\n    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)\n    at android.os.Handler.dispatchMessage(Handler.java:106)\n    at android.os.Looper.loopOnce(Looper.java:205)\n    at android.os.Looper.loop(Looper.java:294)\n    at android.app.ActivityThread.main(ActivityThread.java:8176)\n    at java.lang.reflect.Method.invoke(Native Method)\n    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)\n    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)\nCaused by: java.lang.SecurityException: no.norva24.mslam: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED\nshould be specified when a receiver isn't being registered …
Run Code Online (Sandbox Code Playgroud)

android in-app-update android-14 android-api-34

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

如何使用 sendevent 和 adb 执行带有“持续时间”的滑动

我正在使用上面的代码来模拟使用 sendevent 的“滑动”:

sendevent /dev/input/event0 3 53 300 ;First position X
sendevent /dev/input/event0 3 54 600 ;First position Y
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0

sendevent /dev/input/event0 3 53 300  ;Second position X
sendevent /dev/input/event0 3 54 400  ;Second position Y
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0

sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
Run Code Online (Sandbox Code Playgroud)

但是,它确实会立即滑动而没有任何延迟。

我试图弄清楚如何指定滑动的持续时间,就像您可以使用 adb shell 输入一样: …

android adb

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

API 服务器可接受的标准请求/响应超时是多少(以及原因)?

我正在致力于开发 Web 客户端和 API 服务器。我一直在做一些关于默认超时的研究,有些是 800 毫秒,有些是 1200 毫秒。但是,我找不到任意数字背后的原因。有人可以帮我解决这个问题吗?任意数字背后的解释将会有很大帮助。

谢谢,

api http request server

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

尝试快速启动 Galaxy S8 时“等待任何设备”

我一直在尝试在我的 Galaxy s8 上安装 TWRP 自定义恢复,但没能解决这个特定问题。在查看了几个论坛并观看了 youtube 上的几乎所有解决方案后,我不得不发布我的问题。

因此,在启用 USB 调试和 OEM 解锁后,我在 cmd 提示符中打开平台工具并输入以下内容:

adb devices- 这表明我的电脑已检测到我的设备

adb reboot bootloader- 然后这将带我进入引导加载程序模式

fastboot flash recovery recovery.img- 这让我看到“正在等待任何设备”

我见过的所有解决方案都与驱动程序有关,但我相信我的解决方案在手动安装后是最新的C:\Users\"My Name"\AppData\Local\Android\Sdk\extras\google\usb_driver

任何帮助将非常感激。谢谢

android root adb fastboot samsung-galaxy

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

如何使用 adb shell 检查应用程序是否崩溃/停止工作?

我目前正在这样做:

-d: 只调用一次 logcat 并返回

adb shell logcat -d
Run Code Online (Sandbox Code Playgroud)

然后我在日志中对Caused by.*"apk name".

问题是,有时它会在日志中生成此消息,但该应用程序仍在响应/工作。想问一下是否有更好的方法来检查应用程序是否停止工作,使用 adb shell 命令。

停止工作我的意思是,它仍然打开但没有响应任何东西。

注意:我不是在寻找导致应用程序崩溃的原因,只是它是否已停止工作。

android adb

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

未知命令:使用 adb shell 时 verify-app-links pm verify-app-links

我正在使用以下应用程序链接:https ://developer.android.com/training/app-links/verify-site-associations

使用cmd时:adb shell pm verify-app-links

show: Unknown command: verify-app-links
Run Code Online (Sandbox Code Playgroud)

我的adb版本是:

$ adb --version
Android Debug Bridge version 1.0.41
Version 31.0.3-7562133
Run Code Online (Sandbox Code Playgroud)

几乎是最新的,为什么未知命令:verify-app-links?

android adb android-app-links

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

Android - getResources().getIdentifier 替换

在 android 中,我循环遍历数据库并分配文本和图像:

Cursor res = myDb.getAllData();

while (res.moveToNext()) {
    Actors actor = new Actors();
    actor.setName(res.getString(1));

    String th =  res.getString(11);
    Integer thumb = this.getResources().getIdentifier(th, "drawable", "mypackage");

    actor.setThumb(R.drawable.th);
}
Run Code Online (Sandbox Code Playgroud)

然而,Lint 建议不要使用 getIdentifier - 不鼓励使用此函数,因为资源反射会使执行代码的构建优化和编译时验证变得更加困难。

在数据库列中,我只有图像名称(字符串)。如何替换 getIdentifier?

即使我将 DB 列直接更改为R.drawable.imagename,它仍然是一个字符串,因为setThumb我需要一个可绘制对象。

android

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