我有一个程序,它必须只执行一个命令
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Runtime.getRuntime().exec("adb shell input tap 0 0")
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误
Process: com.example.tomfo.pokerclicker, PID: 11578
java.io.IOException: Cannot run program "adb": error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
at java.lang.Runtime.exec(Runtime.java:695)
at java.lang.Runtime.exec(Runtime.java:525)
at java.lang.Runtime.exec(Runtime.java:422)
at com.example.tomfo.pokerclicker.MainActivity$onCreate$1.run(MainActivity.kt:14)
at java.util.TimerThread.mainLoop(Timer.java:562)
at java.util.TimerThread.run(Timer.java:512)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
at java.lang.ProcessImpl.start(ProcessImpl.java:132)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
at java.lang.Runtime.exec(Runtime.java:695)
at java.lang.Runtime.exec(Runtime.java:525)
at java.lang.Runtime.exec(Runtime.java:422)
at com.example.tomfo.pokerclicker.MainActivity$onCreate$1.run(MainActivity.kt:14)
at java.util.TimerThread.mainLoop(Timer.java:562)
at java.util.TimerThread.run(Timer.java:512)
Run Code Online (Sandbox Code Playgroud)
虽然我已经添加了 adb 到 Windows 上的属性路径,并且可以运行 …
我正在尝试用millis转换14年,使用函数
fun getMinimumAgeInMillis(): Long {
val long: Long = 1000 * 60 * 60 * 24 * 365 * 14
return (long)
}
Run Code Online (Sandbox Code Playgroud)
但不是我的价值,我得到负值-877631488.那么,哪里有问题呢?我没有遇到长期限制
我正在使用 Timber 将一些日志写入位于设备上的文件。现在,我正在使用 HTTP 拦截器编写我选择的日志和来自服务器的一些响应。但我想在文件中写入所有异常(例如致命的)。木材或其他图书馆可以吗?
现在我正在使用 Fabric,但我的应用程序并不总是与外部世界有互联网连接
PS我想在没有try/catch的情况下编写所有致命异常
public class FileLoggingTree
{
/**
* Sends an error message to LogCat and to a log file.
* @param context The context of the application.
* @param logMessageTag A tag identifying a group of log messages. Should be a constant in the
* class calling the logger.
* @param logMessage The message to add to the log.
*/
public static void e(Context context, String logMessageTag, String logMessage)
{
if (!Log.isLoggable(logMessageTag, Log.ERROR)) …
Run Code Online (Sandbox Code Playgroud) 我想使用数据绑定将 android:textAlignment 应用于 TextView,如下所示:
android:textAlignment="@{viewModel.switcher ? START : CENTER}"
Run Code Online (Sandbox Code Playgroud)
现在我已经实现了它抛出重力:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="@{viewModel.text}"
android:textAlignment="gravity"
android:gravity="@{viewModel.switcher ? Gravity.LEFT : Gravity.CENTER}"
android:textSize="14sp"/>
Run Code Online (Sandbox Code Playgroud)
但是我可以直接抛出数据绑定来实现textAlignment吗?
当我打开一些放置在我的活动中的片段时,我想更改屏幕的亮度,因此我在 onActivityCreated 中放置了这样的代码(我也尝试将其放置在 Resume 上)。但我想当用户关闭此片段时将屏幕返回到之前的亮度。但目前亮度适用于所有活动。如何仅对片段应用脆性?或者记录亮度结果并在片段关闭时重新运行它?
class BrightnessFragment : Fragment(), Injectable {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
appCompatActivity = activity as AppCompatActivity
val lp = activity!!.window.attributes
lp.screenBrightness = 1F
activity!!.window.attributes = lp
}
override fun onResume() {
super.onResume()
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些值的枚举,称为 Counter
enum class Counter{
none,
few,
many
}
Run Code Online (Sandbox Code Playgroud)
我想使用改造来获取模型中这个枚举的值,所以我创建了一个对象
data class Test(
var param1: String?,
var param2: String?,
var counter: Counter?,
)
Run Code Online (Sandbox Code Playgroud)
但是当我在我的 Retrofit 方法中使用类似的模型时,我只得到 param1 和 param 2,尽管我的服务器的响应是{"param1": "String1", "param2": "String2", "counter": "many"}
如何获取计数器的值,而不是在模型中使用var counter: String?
?
我有一个格式化一些文本的函数
fun String.formatTo(): String {
if (this.isNotEmpty()) {
val value = this.toDouble()
return "%.02f".format(value)
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
我想使用数据绑定将这种乐趣应用到我的 textView 中,所以我调用了 textView ,在我的布局android:text="@{viewModel.text.formatTo()}"
中导入类data
<data>
<import type="com.project.utils.extensions.ExtKt"/>
<variable
name="viewModel"
type="com.project.ViewModel" />
</data>
Run Code Online (Sandbox Code Playgroud)
但我在构建时遇到了错误:
Found data binding errors.
****/ data binding error ****msg:cannot find method formatTo() in class java.lang.String
Run Code Online (Sandbox Code Playgroud)
什么是问题?
我正在尝试将1980-02-22T00:00:00Z解析为"java.util.Date"使用
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'").parse(stringdate)
Run Code Online (Sandbox Code Playgroud)
但我得到了错误
由以下原因引起:java.text.ParseException:无法解析的日期.
如何将这样的字符串解析为Date以获得时间(以毫秒为单位)?我试过用SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
和SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")