在我的活动中,我使用以下代码作为我的两个工具栏.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Creating The Toolbar and setting it as the Toolbar for the activity
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("My title");
toolbar2 = (Toolbar) findViewById(R.id.tool_bar_bottom);
setSupportActionBar(toolbar2);
...
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我希望它使用menu_main.xml作为顶部工具栏,使用menu_bottom作为底部工具栏,但是对于顶部和底部工具栏,它使用menu_main.xml.
有人可以解释一下如何正确地做到这一点吗?
升级我的应用程序以在4.4.2设备上运行时,我收到错误
RS CPP error: Blur radius out of 0-25 pixel bound
Run Code Online (Sandbox Code Playgroud)
伴随着Signal 11(本机代码)错误:
Fatal signal 11 (SIGSEGV) at 0x00000028 (code=1)
Run Code Online (Sandbox Code Playgroud)
这个问题的根源花了我很长时间才找到没有结果的谷歌或堆栈溢出和搜索我的代码任何使用'模糊'没有透露任何东西.
迁移项目或在已迁移的分支之间切换时,Android Studio无法构建项目,因为它无法找到该android.support.design.widget.Snackbar程序包.删除了支持/设计包,但迁移表未列出此组件的正确新包.
我有这个代码:
Button bluehost = (Button)findViewById(R.id.bluehost);
bluehost.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.bluehost.com/track/businessplan/"));
startActivity(browserIntent);
}
});
Run Code Online (Sandbox Code Playgroud)
从技术上讲,此代码可以将此人发送到该URL,但由于某种原因,此特定URL会转到此代码中找不到的页面,但是如果您将此URL放入浏览器中则会呈现.但是当从应用程序完成时,它转到页面未找到.我正在使用Android Safari浏览器进行测试.
是因为URL的重定向吗?我怎么能解决这个问题呢?
我在清单文件中有这一行:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
注意:
互联网连接不是问题.此代码适用于其他URL.这个具体的链接正在发生一些奇怪的事情.
谢谢!
我发现较旧的问题涉及同一主题,但最新版本没有可用的答案适合我.
我在我的项目中使用Retrofit.当我尝试组装时,我收到以下错误:
警告:retrofit.client.OkClient:找不到引用的类com.squareup.okhttp.OkHttpClient
我正在使用以下内容,但它没有任何帮助:
-keepattributes Signature
-keep class retrofit.** { *; }
-keep class retrofit.http.** { *; }
-keep class retrofit.client.** { *; }
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class com.google.gson.** { *; }
-keep class com.google.inject.* { *; }
-keep class org.apache.http.* { *; }
-keep class org.codehaus.mojo.** { *; }
-keep class org.apache.james.mime4j.* { *; }
-keep class javax.inject.* { *; }
-keep class sun.misc.Unsafe { *; }
-libraryjars libs/acra-4.5.0.jar …Run Code Online (Sandbox Code Playgroud) 我有大致以下结构
class MyDeserialParent<T extends MyChildInterface> {
MyChildInterface mSerialChild;
... //some other fields (not 'type')
}
Run Code Online (Sandbox Code Playgroud)
但它从一个混乱的JSON结构反序列化,子节点的两个属性在父节点上返回,如下所示.
{
"myDeserialParents" : [
{
... //some parent properties
"type": "value", //used in a TypeAdapter to choose child implementation
"childProp1": "1",
"childProp2": "2",
},
... //more in this list
]
}
Run Code Online (Sandbox Code Playgroud)
显然,这使我无法仅仅通过注释mSerialChild SerializedName并让它TypeAdapter发挥作用.那么,我希望做的是,当MyDeserialParent被deserialised使用"类型",找到正确的具体类的MyChildInterface,并使用一个新的childProp1,并childProp2作为params用于在构造函数.我不知道怎么回事.
我可以想象使用a TypeAdapter(JsonDeserializer)for MyDeserialParent和in deserialize获取类型字段(以及两个子属性),然后为MyChildInterface我自己实例化正确的具体.
这意味着我必须创建我的MyDeserialParent类(with context.deserialize(json, MyDeserialParent.class))并使用MyChildInterface实例调用setter .那种感觉错了,就像我错过了什么.有没有更好的办法? …
我想让我的应用程序自动安装apk.这适用于api <24.但对于24岁,它失败了.Android实现了额外的安全性:
对于定位到Android 7.0的应用,Android框架会强制执行StrictMode API策略,该策略禁止在应用外部公开file:// URI.如果包含文件URI的intent离开了您的应用程序,则该应用程序将失败并出现FileUriExposedException异常.
所以我尝试了这个:
Uri myuri;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N){
myuri = Uri.parse("file://"+outapk);
} else {
File o = new File(outapk);
myuri = FileProvider.getUriForFile(con, con.getApplicationContext().getPackageName() + ".provider", o);
}
Intent promptInstall = new Intent(Intent.ACTION_VIEW).setDataAndType(myuri,"application/vnd.android.package-archive");
con.startActivity(promptInstall);
Run Code Online (Sandbox Code Playgroud)
但得到一个致命的例外:
com.android.packageinstaller "Caused by: java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{b42ee8a 6826:com.android.packageinstaller/u0a15} (pid=6826, uid=10015) that is not exported from uid 10066".
Run Code Online (Sandbox Code Playgroud)
我的清单中有export = true.
问题似乎是packageinstaller无法使用content:// uri.
有没有办法允许应用程序以编程方式安装带有api24的apk?
uri securityexception apk packageinstaller android-7.0-nougat
如何查看非聚焦的RecyclerView子项(项目)的文本?
我的辅助功能服务应该从屏幕上读出包含关键字的文本.这在大多数情况下效果很好,除非我处理RecyclerViews,特别是那些在Facebook应用程序中的.
Facebook提要和评论屏幕都基于RecyclerView,似乎都不能让我从他们的辅助功能事件中访问我需要的文本.
我尝试过的:
public void onAccessibilityEvent(AccessibilityEvent event) {
//I've tried looping through event.getText() and it does not contain the text entries
//I've also tried the following (with various null checks)
AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
AccessibilityNodeInfoCompat source = record.getSource();
List<AccessibilityNodeInfoCompat> nodes = source.findAccessibilityNodeInfosByText("...");
//(and loop through the entries)
//I've also tried limiting to the class name "android.support.v7.widget.RecyclerView"
//and looking at parcelableData
//In the facebook app, the following is always null too
source.findFocus(AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);
}
Run Code Online (Sandbox Code Playgroud)
似乎没有地方包含我需要的数据.作为从帖子打开评论屏幕/叠加层的示例,我可以看到所有文本内容,除了评论本身(在回收者视图中)
我可以看到的事件详细信息的日志:
以下是我在帖子中看到的评论叠加在一个帖子上的评论
Event: EventType: TYPE_WINDOW_CONTENT_CHANGED; PackageName: …Run Code Online (Sandbox Code Playgroud) android facebook accessibility android-recyclerview android-accessibility
我一直在努力使用Android-LibVLC运行一个演示应用程序.
我只能找到linux的文档,无法让应用程序在我的设备上运行(尽管它编译).
当我启动应用程序时,它会记录:
12-16 15:58:19.572 9121-9121/? E/VLC/LibVLC? Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.compdigitec.libvlcandroidsample-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.compdigitec.libvlcandroidsample-1, /vendor/lib, /system/lib]]]: findLibrary returned null
12-16 15:58:19.667 9135-9135/com.compdigitec.libvlcandroidsample E/VLC/LibVLC? Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.compdigitec.libvlcandroidsample-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.compdigitec.libvlcandroidsample-1, /vendor/lib, /system/lib]]]: findLibrary returned null
Run Code Online (Sandbox Code Playgroud)
我已经使用org.videolan.libvlc目录类编译了项目APK作为源根目录的一部分,并且在同一模块中使用了jni目录并且失败了,我还将整个VLC模块作为单独的库模块包含在内这是一种依赖,这也失败了.
有没有人有一个成熟的方法来配置/构建一个Android项目与LibVLC,从Windows?或指示/文档的链接?(我找不到任何东西).
目标是将我的Android MediaPlayer依赖类替换为支持更多文件类型/编解码器的库/实现.