小编Val*_*aal的帖子

在“lintChecks”配置中发现不止一个 jar

我想向我的项目添加自定义 lint 规则,但在同步项目时出错。

Execution failed for task ':app:prepareLintJar'.


Found more than one jar in the 'lintChecks' configuration. Only one file is supported. If using a separate Gradle project, make sure compilation dependencies are using compileOnly
Run Code Online (Sandbox Code Playgroud)

如何检查哪个库或模块正在添加另一个 jar?

android lint gradle

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

如果我从代码创建 TextView(在特定设备上),为什么字体不适用

我将项目中的字体更改为自定义字体。它在模拟器和许多设备上工作正常,但在某些设备上它在某些情况下不起作用,例如,当我从代码创建 TextView 时。

我有一个示例项目来演示这个问题。

这是我的样式文件

<resources>
    <style name="TextStyle.Caption" parent="TextAppearance.AppCompat.Caption">
        <item name="android:textSize">12sp</item>
        <item name="android:fontFamily">@font/eesti_pro_display_bold</item>
        <item name="android:letterSpacing">0.03</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是我的 xml。这里我有 TextView 和 textAppearance

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:textAppearance="@style/TextStyle.Caption"/>

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我创建另一个 TextView 的 Activity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val layout: ConstraintLayout = findViewById(R.id.container)
        createItemTitleTextView(this.baseContext).apply {
            layout.addView(this)
            text = "Hello World from code!"
        }
    }
}

private fun createItemTitleTextView(context: Context) = TextView(context).apply { …
Run Code Online (Sandbox Code Playgroud)

xml android textview

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

使用 Retrofit 上传带有 json 对象的文件

我想上传带有 JSON 对象的文件。我正在使用 Retrofit2,但收到 400 Bad request。\n我使用curl的请求示例:

\n\n
curl -X POST http://localhost:8082/attachment -F filename=37.pdf -F \'data={"DocumentTypeID":2, "DocumentID":1, "Description":"\xd0\xbe\xd0\xbf\xd0\xb8\xd1\x81\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5","AttachmentTypeId":2}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还在邮递员中提出了请求,它也有效:\n在此输入图像描述

\n\n

我的Java代码:

\n\n
        Uri path = Uri.fromFile(file);\n        RequestBody requestFile =\n                RequestBody.create(\n                        MediaType.parse(getMimeType(path)),\n                        file\n                );\n\n        MultipartBody.Part body =\n                MultipartBody.Part.createFormData("filename", file.getName(), requestFile);\n\n        FileDescriptionObject fdo = new FileDescriptionObject();\n        fdo.setDescription("test");\n        fdo.setDocumentId(fileModel.Id);\n        fdo.setDocumentTypeId(1);\n        fdo.setAttachmentTypeId(2);\n        Gson gson = new Gson();\n        String ds1 = gson.toJson(fdo);\n\n        RequestBody description =\n                RequestBody.create(\n                        MediaType.parse("text/plain"), ds1);\n\n        Call<ResponseBody> call = activity.getAsyncHelper().getWebService().postFile(\n                "http://localhost:8082/attachment",\n                body,\n                description);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的API:

\n\n
    @Multipart\n    @POST\n    Call<ResponseBody> postFile(@Url String url,\n …
Run Code Online (Sandbox Code Playgroud)

java android retrofit retrofit2

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

如何重写文档文件

我想让用户拿起文件夹,我的应用程序将在此文件夹中创建一个文件。所以我使用Intent.ACTION_OPEN_DOCUMENT_TREE. Google 说我需要使用 DocumentFile 而不是 File。以前我使用 File 并希望得到类似于下面代码结果的结果

FileOutputStream fs = new FileOutputStream(mFile);
Writer writer = new BufferedWriter(new OutputStreamWriter(fs));
writer.append(mContent);
Run Code Online (Sandbox Code Playgroud)

但 DocumentFile 不是文件,我不能使用 FileOutputStream。所以我用 OutputStream 写了这段代码

 Uri treeUri = data.getData();
 DocumentFile pickedDir = DocumentFile.fromTreeUri(MainActivity.this, treeUri);
 DocumentFile mFile = pickedDir.createFile("text/plain", "Note");
 OutputStream out = getContentResolver().openOutputStream(mFile.getUri());                                            
 out.write(infos.get(i).getContent().getBytes());
 out.flush();
 out.close();
Run Code Online (Sandbox Code Playgroud)

这段代码不会重写我的文件,而是创建另一个名为 Note(1) 所以我想知道是否有一种方法可以使用 OutputStream 重写文件,或者使用 FileOutputStream 的另一种方法,但我不知道如何使用它与 DocumentFile。

先感谢您。

java android uri outputstream documentfile

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

标签 统计

android ×4

java ×2

documentfile ×1

gradle ×1

lint ×1

outputstream ×1

retrofit ×1

retrofit2 ×1

textview ×1

uri ×1

xml ×1