gpt4 book ai didi

android - 修改 applicationId 时无法访问原始资源

转载 作者:太空狗 更新时间:2023-10-29 14:46:42 25 4
gpt4 key购买 nike

我修改了我的应用程序,因此我可以在单个移动设备上将调试和生产构建作为单独的应用程序:

android { buildTypes { debug {
applicationIdSuffix ".debug"
resValue 'string', 'app_name', 'LeliMath DEV'
}

我意识到 WebView 停止加载位于 res/raw 文件夹中的文件。我只是找不到简单的错误文件。生产构建工作正常。

    WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("file:///android_res/raw/changelog.html");

Android 监视器说:

AndroidProtocolHandler: Unable to open resource URL: file:///android_res/raw/changelog.html
java.lang.ClassNotFoundException:
Didn't find class "lelisoft.com.lelimath.debug.R$raw" on path:
DexPathList[[zip file "/data/app/lelisoft.com.lelimath.debug-1/base.apk"],
nativeLibraryDirectories=[/data/app/lelisoft.com.lelimath.debug-1/lib/arm64,
/system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

最佳答案

您可以尝试以下步骤:

  1. 在不同的风格目录下创建新的R.java 文件。在你的情况下,在你的 debug flavor 目录中的这个包 lelisoft.com.lelimath.debug 中创建这个文件。
  2. 复制您的普通 R.java 内容,或者只选择您需要的内容并使用普通 R.java 中的值进行设置。例如:
package lelisoft.com.lelimath.debug;
public final class R {
public static final class raw {
public static final String changelog = lelisoft.com.lelimath.R.raw.changelog;
}
}
  1. 最后,将此行添加到您的混淆器中:

-keep class lelisoft.com.lelimath.debug.R$raw {*;}

您可以对任何口味重复这些步骤。希望它能解决您的问题。

关于android - 修改 applicationId 时无法访问原始资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39435329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com