我想向我的项目添加自定义 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?
我将项目中的字体更改为自定义字体。它在模拟器和许多设备上工作正常,但在某些设备上它在某些情况下不起作用,例如,当我从代码创建 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) 我想上传带有 JSON 对象的文件。我正在使用 Retrofit2,但收到 400 Bad request。\n我使用curl的请求示例:
\n\ncurl -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}\'\nRun Code Online (Sandbox Code Playgroud)\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);\nRun 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) 我想让用户拿起文件夹,我的应用程序将在此文件夹中创建一个文件。所以我使用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。
先感谢您。