小编Str*_*ove的帖子

无法运行程序“adb”:错误=13,权限被拒绝

我有一个程序,它必须只执行一个命令

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 上的属性路径,并且可以运行 …

java android adb kotlin

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

用毫秒长的否定答案计算年数

我正在尝试用millis转换14年,使用函数

    fun getMinimumAgeInMillis(): Long {
        val long: Long = 1000 * 60 * 60 * 24 * 365 * 14
        return (long)
    }
Run Code Online (Sandbox Code Playgroud)

但不是我的价值,我得到负值-877631488.那么,哪里有问题呢?我没有遇到长期限制

kotlin

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

将所有异常写入文件

我正在使用 Timber 将一些日志写入位于设备上的文件。现在,我正在使用 HTTP 拦截器编写我选择的日志和来自服务器的一些响应。但我想在文件中写入所有异常(例如致命的)。木材或其他图书馆可以吗?

现在我正在使用 Fabric,但我的应用程序并不总是与外部世界有互联网连接

PS我想在没有try/catch的情况下编写所有致命异常

TimberLooger.class

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 timber-android

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

android:textAlignment 使用数据绑定 (TextView)

我想使用数据绑定将 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吗?

android android-databinding

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

更改片段中的屏幕亮度

当我打开一些放置在我的活动中的片段时,我想更改屏幕的亮度,因此我在 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)

android android-fragments

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

如何获得枚举抛出改造的价值?

我有一些值的枚举,称为 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?

android kotlin retrofit

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

数据绑定无法使用 String.function() 调用静态函数

我有一个格式化一些文本的函数

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)

什么是问题?

android kotlin android-databinding

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

无法解释的日期例外(1980-02-22T00:00:00Z)

我正在尝试将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")

java date kotlin

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