相关疑难解决方法(0)

在Android Studio中渲染时不支持major.minor版本52.0

当我尝试在Android Studio中渲染布局预览时出现错误:

不支持的major.minor版本52.0

android rendering preview android-studio

105
推荐指数
8
解决办法
14万
查看次数

从Android L及更高版本开始,setMobileDataEnabled方法不再可调用

我已经向Google报告了问题78084,因为该setMobileDataEnabled()方法不再可以通过反射调用.它可以通过反射从Android 2.1(API 7)到Android 4.4(API 19)进行调用,但是从Android L及更高版本开始,即使使用root,该setMobileDataEnabled()方法也不可调用.

官方回应是问题是"已关闭",状态设置为"WorkingAsIntended".谷歌的简单解释是:

私有API是私有的,因为它们不稳定,可能会在没有通知的情况下消失.

是的,谷歌,我们意识到使用反射调用隐藏方法的风险 - 甚至在Android出现之前 - 但是你需要提供一个更加可靠的答案,如果有的话,可以实现相同的结果setMobileDataEnabled().(如果您对Google的决定不满意,请登录问题78084,并尽可能多地将其加注,以便让Google知道他们的错误.)

所以,我的问题是:在Android设备上以编程方式启用或禁用移动网络功能时,我们是否处于死胡同?谷歌的这种严厉的方法在某种程度上并不适合我.如果您有Android 5.0(Lollipop)及其他方法的解决方法,我很乐意听到您在此主题中的回答/讨论.

我使用下面的代码来查看该setMobileDataEnabled()方法是否可用:

final Class<?> conmanClass = Class.forName(context.getSystemService(Context.CONNECTIVITY_SERVICE).getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(context.getSystemService(Context.CONNECTIVITY_SERVICE));
final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method[] methods = iConnectivityManagerClass.getDeclaredMethods();
for (final Method method : methods) {
    if (method.toGenericString().contains("set")) {
        Log.i("TESTING", "Method: " + method.getName());
    }
}
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

更新:目前,如果设备已植根,则可以切换移动网络.但是,对于非根设备,它仍然是一个调查过程,因为没有通用的方法来切换移动网络.

reflection android android-5.0-lollipop

47
推荐指数
3
解决办法
4万
查看次数

将我的apk推送到/ system/app

如何将我的应用程序包推送到Android模拟器"/ system/app"文件夹?

我已经尝试过使用:
"adb push myApk.apk/system/app"
它给了我这个:

"failed to copy: ... No space left on device"
Run Code Online (Sandbox Code Playgroud)

虽然从设置 - > sdCard和手机存储,我获得了37Mb的内部可用空间.

这种需求的重点
与权限有关.

我需要拥有INSTALL_PACKAGES权限
,我知道通过将我的应用程序
放在/ system/app中,我获得了该权限.

android

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

Android:adbd无法在生产版本中以root身份运行

我有一个基于Android的手机(2.3.6),具有未锁定的root权限.由于我想通过我的电脑访问我的手机,今天我已经安装了QtAdb和Android SDK.如果我打开命令提示符,我这样做

adb shell su

我明白了

#

所以我能够复制,删除,推送手机上的文件(在手机上我使用应用程序"SuperSU"收到通知.)

但是,如果我在Windows 7下启动QtAdb,我会收到以下错误:"adbd无法在生产版本中以root身份运行".我想念什么?QtAdb出了什么问题?

android root adb

22
推荐指数
4
解决办法
10万
查看次数

adb重新安装失败-挂载:“系统”不在/ proc / mounts中

我尝试了stackoverflow和在线中可用的所有命令和建议,但没有一个起作用

还有很多,但对我没有用

我收到以下错误-以下命令均无效。

$adb root
$adb disable-verity
Run Code Online (Sandbox Code Playgroud)

对于

$adb remount
remount of / failed: Permission denied
remount failed
Run Code Online (Sandbox Code Playgroud)

所以然后我尝试了不同的命令

$ adb shell mount -o rw,remount /system
mount: '/system' not in /proc/mounts

$ adb shell mount -o rw,remount /
'/dev/root' is read-only


$ adb shell  mount -o rw,remount -t /dev/block/stl12 system
mount: 'system' not in /proc/mounts

$ adb shell "su 0 mount -o rw,remount /system"
mount: '/system' not in /proc/mounts

$ adb shell
$ su
# mount -o rw,remount …
Run Code Online (Sandbox Code Playgroud)

bash android mount adb

7
推荐指数
5
解决办法
4660
查看次数