小编fat*_*ire的帖子

修复“构建类型包含自定义 BuildConfig 字段,但该功能已禁用”错误 w/ buildConfigField

在带有 org.jetbrains.kotlin (1.8.0-Beta) 插件和 8.0.0-alpha09 gradle 插件的新版本 Android Studio (Flamingo | 2022.2.1 Canary 9) 中,新版本突然出现此错误:

构建类型“release”包含自定义 BuildConfig 字段,但该功能已禁用。

有办法让它消失吗?

java android gradle android-studio android-buildconfig

106
推荐指数
3
解决办法
6万
查看次数

您可以在Android Marshmallow(API 23)的运行时权限模型中同步请求权限吗?

假设您有这样的方法:

public boolean saveFile (Url url, String content) {

   // save the file, this can be done a lot of different ways, but
   // basically the point is...

   return save_was_successful;
}
Run Code Online (Sandbox Code Playgroud)

在整个应用程序中,如果要将文件保存到外部存储,则执行以下操作:

if (saveFile(external_storage_url, "this is a test")) {
   // yay, success!
} else { // notify the user something was wrong or handle the error }
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子,所以不要对我的情况大概阻塞UI,妥善处理异常,等等.如果你不喜欢的文件保存得到的,你能想象一个getContact()getPhoneState()或什么的.重点是它是一个需要许可的操作,它返回一些值并在整个应用程序中使用它.

在Android <= Lollipop中,如果用户已经安装并同意授予android.permission.WRITE_EXTERNAL_STORAGE或其他什么,那么一切都会好的.

但是在新的Marshmallow(API 23)运行时权限模型中,在将文件保存到外部存储之前,您应该(1)检查是否已授予权限. 如果没有,可能(2)显示请求的理由(如果系统认为这是一个好主意)与吐司或其他什么,以及(3)要求用户通过对话授予权限,然后基本上坐下来等待打回来...

(所以你的应用程序坐在那里,等待...)

(4)当用户最终响应对话框时,onRequestPermissionsResult() …

android android-permissions android-6.0-marshmallow

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

在Android Studio 2中构建时出现"EnclosingMethod"错误

当我在Android Studio 2中运行应用程序时,我遇到了构建错误.当我使用早期版本的Android Studio时,这些错误并不存在.

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.squareup.haha.guava.base.Joiner$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* …
Run Code Online (Sandbox Code Playgroud)

android android-studio-2.0

30
推荐指数
3
解决办法
9036
查看次数

我可以在没有科尔多瓦的原生Android应用程序中使用聚合物/网络组件吗?

如果我没弄错的话,你需要一个Web服务器来使用/测试计算机上的Polymer的Web组件(例如纸质元素),因为加载本地file://s会导致浏览器权限问题.

(一个简单的解决方案是导航到您想要尝试的聚合物文件的目录,python -m SimpleHTTPServer然后键入然后加载http://localhost:8000,一切都很好.)

但是,如果我想在一个简单的WebView中使用本机java android应用程序中的Web组件/ Polymer元素,而不是处理Cordova或在我的应用程序中以某种方式设置Web服务器.我能够轻松完成,还是会有相同的权限问题?

提前致谢.

android webview cordova polymer

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

在Android中生成并打印特定大小的PDF

我正在使用Android应用程序,并且想生成和打印PDF。但是我遇到了麻烦。我需要生成PDF80mm的width,并且height可能会有所不同。

我正在尝试:

public class PDFGenerator implements Runnable {
    private Context ctx;
    private View view;
    private Intent mShareIntent;
    private OutputStream os;

    public PDFGenerator(Context ctx, View view) {
        this.ctx = ctx;
        this.view = view;
        makeAndSharePDF();
    }

    public void makeAndSharePDF() {
        new Thread(this).start();
    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    public void run() {
        PrintAttributes printAttrs = new PrintAttributes.Builder().
                setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME).
                setMediaSize(PrintAttributes.MediaSize.ISO_C7).
                setResolution(new PrintAttributes.Resolution("zooey", ctx.PRINT_SERVICE, 500, 500)).
                setMinMargins(PrintAttributes.Margins.NO_MARGINS).
                build();

        PdfDocument document = new PrintedPdfDocument(ctx, printAttrs);
        PdfDocument.PageInfo pageInfo = new  PdfDocument.PageInfo.Builder(view.getWidth(), view.getHeight(), 1).create();
        PdfDocument.Page …
Run Code Online (Sandbox Code Playgroud)

pdf android android-print-framework

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

Android:如何将矢量可绘制图像加载到网络视图中?

抱歉,如果这是重复的,但我努力搜索,但没有发现这个问题被问到......

回到过去的 Android 时代,您可以将类似这样的内容添加到 WebView 的源 html 中:

<img src='file:///android_res/drawable/my.png'/>
Run Code Online (Sandbox Code Playgroud)

并且它会在 WebView 中正确显示 my.png。但是 - Android 现在支持(并且更喜欢我们使用)这些新奇的矢量绘图,并且 Android Studio 的Vector Asset Studio使从 SVG 文件或其他文件导入它们变得非常容易。

最棒的是,为了向后兼容,在构建过程中会自动生成各种 dpi/屏幕尺寸的 .png 文件,以支持旧设备。因此,如果您的目标是较旧的设备,则那里有 .png 图像。

如果我能联系到他们就好了。因为,据我所知,使用矢量图形确实会破坏file:///android_res/drawable/ imgWebView 中的这些链接。这很奇怪,因为正如我所说,如果只是查看的话,可以查看 .png 文件。

我想过一些方法来解决这个问题,但没有一个有效:

  1. 由于 .png 是动态生成的并包含在 .apk 中,我想也许我可以直接指向生成的文件之一,例如file:///android_res/drawable-hdpi-v4/my.png. (我检查了 .apk 文件,其中之一就在那里......)但是没有这样的运气。破碎的图像。

  2. 好吧,我想——也许有一种方法可以让 WebView 直接显示矢量对象。也就是说,WebView 可能会识别一个<img src="file:///android_res/drawable/my_image.xml"/>或类似的东西。我的意思是,Chrome 可以渲染 svg 对吗?也许它也支持 .xml 矢量格式。但这里也没有骰子。(即使它有效,它也不太可能支持旧的 pre-chromium webview 版本。)

  3. 我尝试的第三件事是仅包含一个 xxxhdpi 大小的 .png,res/drawable以便 Web 视图能够找到它并希望显示它。不幸的是,这也不起作用。看来只要有一个 .xml 矢量/drawable …

android webview android-resources android-drawable android-vectordrawable

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

nullpointerexception,我不知道为什么

我收到以下错误:

06-09 06:56:24.675: E/AndroidRuntime(1629): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gauvion.simpleworkouttracker/com.myapp.MainActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

Logcat说它的原因是:

06-09 06:56:24.675: E/AndroidRuntime(1629): Caused by: java.lang.NullPointerException
06-09 06:56:24.675: E/AndroidRuntime(1629):     at com.myapp.MainActivity.onCreate(MainActivity.java:26)
Run Code Online (Sandbox Code Playgroud)

以下是MainActivity的代码:

package com.myapp;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends ListActivity {
    private DayDataSource datasource;
    private SimpleCursorAdapter dataAdapter;
    private Cursor cursor;
    private boolean isEditing = false;
    private Toast toast_deleted;
    private String[] columns = new String[] { MySQLiteHelper.COLUMN_NAME, MySQLiteHelper.COLUMN_DAY };
    private int[] to;

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android cursor nullpointerexception

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