我有一个NDK库和相应的Java类的工作实现.但我无法将重载方法添加到该类.目前我的班级包含:
package com.package;
public class MyClass
{
public static native String getFileName();
static
{
System.loadLibrary("mylib");
}
}
Run Code Online (Sandbox Code Playgroud)
我的jniwrappers.cpp文件有以下声明:
JNIEXPORT jstring JNICALL
Java_com_package_MyClass_getFileName(_JNIEnv* env, jobject thiz);
Run Code Online (Sandbox Code Playgroud)
到目前为止一切正常.但接下来我修改了我的课程:
package com.package;
public class MyClass
{
public static native String getFileName();
public static native String getFileName(int index);
...
}
Run Code Online (Sandbox Code Playgroud)
并添加到jniwrappers.cpp另一个声明:
JNIEXPORT jstring JNICALL
Java_com_package_MyClass_getFileName__I(_JNIEnv* env, jobject thiz, jint index);
Run Code Online (Sandbox Code Playgroud)
它编译得很好,Android应用程序启动,没有得到UnsatisfiedLinkError,但是当它调用带参数的第二个方法时,第一个C++函数被调用但不是第二个.我在该类中有其他方法参数,但它们都没有重载,所以它们各自的JNI签名不包含参数.
那么,我做错了什么?
刚刚在Eclipse中更新了SDK和SDK工具,尝试在Honeycomb上运行我的应用程序并获得以下内容:
[2011-01-28 00:22:12 - Androzic] Uploading Androzic.apk onto device 'emulator-5554'
[2011-01-28 00:22:13 - Androzic] Installing Androzic.apk...
[2011-01-28 00:24:19 - Androzic] Failed to install Androzic.apk on device 'emulator-5554!
[2011-01-28 00:24:19 - Androzic] (null)
[2011-01-28 00:24:19 - Androzic] Failed to install Androzic.apk on device 'emulator-5554': EOF
[2011-01-28 00:24:19 - Androzic] com.android.ddmlib.InstallException: EOF
[2011-01-28 00:24:19 - Androzic] Launch canceled!
Run Code Online (Sandbox Code Playgroud)
其他avd正常运行.有人成功了吗?我究竟做错了什么?
我有一个活动,包含许多片段,使用操作栏和导航抽屉.它启用了"home as up".我已经实现了正确的逻辑,只有顶级片段显示动作栏抽屉切换图标,其他片段显示箭头.我通过以下方式实现了
mDrawerToggle.setDrawerIndicatorEnabled(false);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerList);
Run Code Online (Sandbox Code Playgroud)
现在旧的v4支持库ActionBarDrawerToggle已被弃用.我已经和new一起切换到v7版本Toolbar以获得Material Design外观.在抽屉打开之后"向上"箭头被正确显示,但是当执行上述代码时它完全消失.
这是支持库中的错误还是我必须做一些不同的事情来显示"向上"箭头而不是抽屉指示器?
android android-ui android-actionbar-compat android-5.0-lollipop android-toolbar
我需要通过平滑的曲线连接三个点.我已经看过StackOverflow上已经回答的相同问题,但他们都建议使用Path.quadTo().我不明白为什么这被认为是正确的答案,因为贝塞尔曲线只接近中间(控制)点而不是经过它.在我的情况下,我必须完全通过它.那我怎么能实现呢?
我AndroidManifest.xml按照文章中的描述添加了以下内容:
<application android:name="MyApp" ... android:installLocation="auto">
...
</application>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />
Run Code Online (Sandbox Code Playgroud)
但Move to SD card我的应用程序仍然处于禁用状态(我手机上的其他已安装的应用程序可以成功移动到SD卡).它出什么问题了?
我有一个自定义列表视图,其中包含以下项目布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:paddingBottom="2dip"
android:paddingTop="2dip" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:paddingLeft="6dip" />
<TextView
android:id="@android:id/text1"
android:layout_width="50sp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/icon"
android:ellipsize="marquee"
android:gravity="center"
android:paddingLeft="6dip"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" />
<TextView
android:id="@+id/start_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@android:id/text1"
android:ellipsize="marquee"
android:paddingLeft="6dip"
android:paddingRight="6dip"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/end_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_below="@id/start_point"
android:layout_toRightOf="@android:id/text1"
android:ellipsize="marquee"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:paddingRight="6dip"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
它显示大部分像我想要的除了那个start_point并且end_point高度不相等.我尝试过很多东西但是在语法错误或布局破坏方面都有所结束.有没有可行的解决方案来实现这一目标?
这篇文章说:
当你添加一个
FloatingActionButton孩子作为你的孩子,CoordinatorLayout然后将其传递CoordinatorLayout给你的Snackbar.make()电话 - 而不是显示在浮动动作按钮FloatingActionButton上的小吃店时,...当小吃店动画时自动向上移动并在小吃栏动画时返回到它的位置
我完全按照那里所描述的那样做,但FAB不会向上移动.(Snackbar可以刷掉,这意味着CoordinatorLayout知道它.)
UPD
布局:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/action_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.ActionBar"/>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/action_toolbar"/>
</RelativeLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginTop="?attr/actionBarSize"
android:background="@color/theme_primary_darker_color"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"/>
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/toolbar_action_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_navigation_white_24dp"
android:layout_margin="16dp"
android:visibility="gone"
app:borderWidth="0dp"
app:elevation="6dp"
app:layout_anchor="@id/action_toolbar"
app:layout_anchorGravity="bottom|right|end"
app:pressedTranslationZ="12dp"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
码:
mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.main_content);
...
Snackbar.make(mCoordinatorLayout, R.string.waypoint_deleted, Snackbar.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud) 我想发布一个捐赠刺激应用程序(如Minimalistic Text所做).据我所知,我可以在我的主要免费应用程序中检查这个捐赠应用程序是通过PackageManager安装的:
try
{
ApplicationInfo info = getPackageManager()
.getApplicationInfo("com.myproject", 0 );
//-- application exists
} catch(PackageManager.NameNotFoundException e) {
//-- application doesn't exist
}
Run Code Online (Sandbox Code Playgroud)
但实际上任何人都可以使用相同的包名提供自己的免费应用程序.我怎样才能收到的证据表明,这个应用程序是真正的我的?