小编Sni*_*las的帖子

Android gradle插件multidex ZipException

我正在尝试使用新的multidex选项,但是我收到以下错误:

Execution failed for task ':packageAll[Variant]TestClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/multidex/BuildConfig.class
Run Code Online (Sandbox Code Playgroud)

我已经能够发现问题只发生在运行connectedAndroidTests任务时,而不是简单地构建项目(构建)时.

android gradle android-multidex

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

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

是否可以生成一个类的内部类以使用注释处理器进行编译?

我想知道是否可以通过注释处理器生成一个类,它将是要编译的类的内部类.

例如,在编译类时A,生成类A$Foo.我想知道是否有一个可以使用的技巧.我觉得有可能生成一些源代码,这些源代码将在与内部类相同的字节代码中编译.并且,在编译/运行时,JVM将其用于内部类,并允许访问外部类私有字段.

这个问题背后的想法,虽然它可能看起来或多或少是技术性的,但它不是一个noobie问题,是能够使用私有可见性修饰符来注释字段,如Dagger,ButterKnife等.私有修饰符允许检测未使用的字段更容易,而包私人保护隐藏它们.

或者是否有任何解决方法,任何方式来充分利用这两个词?

java android annotations annotation-processing

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

如何为泛型对象调用静态类方法?

我需要将泛型类传递给类的构造函数.类是SpiceRequest从RoboSpice的Android库来构造参考.

奇怪的是,类需要将泛型类传递给contstructor,当它可以从泛型类型本身访问时,在这种情况下RESULT.class,但是我可能错了.无论如何,我不是要更改库的代码,而是需要使用泛型类型SpiceRequest,Map<String, ? extends Object>.这是我的代码:

SpiceRequest<Map<String, ? extends Object>> request =
        new SpiceRequest<Map<String, ? extends Object>>(???) {
            ...
        };
Run Code Online (Sandbox Code Playgroud)

和SpiceRequest构造函数的签名:

public SpiceRequest(final Class<RESULT> clazz) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

对于??? 我试过Map.class编译错误:The constructor SpiceRequest<Map<String,? extends Object>>(Class<Map>) is undefined.

Map<String, ? extends Object>.class给出错误:Syntax error on tokens, PrimitiveType expected instead特别强调? extends Object.它也给出了相同的错误Map.class.

并且也Map.<String, ? extends Object>class给出了相同的编译器错误.

获取泛型类的正确方法是什么Class<Map<String, ? extends Object>> …

java generics class robospice

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

开放protobuf服务

您是否知道使用protobuf的强大,免费,理想的开源Web服务?

我维护一个用于网络的Android库,我为每个模块编写样本.例如,JSON模块使用Github apis从网络获取一些数据并说明客户端库的使用情况.

你知道protobuf的等价物吗?

提前致谢.

rest open-source web-services protocol-buffers

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

找不到Gradle DSL方法:'multiDexEnabled()'

我按照https://developer.android.com/tools/building/multidex.html上的multidex指南进行操作

但是我发现这个错误没有找到Gradle DSL方法:'multiDexEnabled()'.我更新了Android内置工具,Android支持存储库和库.这是我的gradle.build文件.我在这里做错了吗?

Could not find method multiDexEnabled() for arguments [true] on ProductFlavorDsl_Decorated{name=main, minSdkVersion=ApiVersionImpl{mApiLevel=10, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=17, mCodename='null'}, renderscriptTargetApi=-1, renderscriptSupportMode=null, renderscriptNdkMode=null, versionCode=-1, versionName=null, applicationId=test.com.app, testApplicationId=null, testInstrumentationRunner=null, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null}.
Run Code Online (Sandbox Code Playgroud)

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "test.com.app"
        minSdkVersion 10
        targetSdkVersion 17

        // Enabling multidex support.
        multiDexEnabled true
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':addThisSDK')
    compile project(':centeredContentButton')
    compile project(':googleplayservices_lib') …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin android-multidex

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

Android espresso maven和gradle设置

有没有人有一个名为espresso的新Android UI测试框架的maven设置示例?

android ui-testing maven android-espresso

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

getSupportFragmentManager无法在DialogFragment上编译

我怎么能这样说:

public class TagsDialog extends DialogFragment
{
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.tags_dialog, null));
        builder.setMessage("This is a message").setTitle("TAGS");
        return builder.create();
    }
}
Run Code Online (Sandbox Code Playgroud)

从我的Fragment内心来看ViewPager:

    public class MyFragment extends Fragment
    {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {

    ...

            ImageView btnTags = (ImageView)view.findViewById(R.id.btnTags);
            btnTags.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View view)
                {

                    DialogFragment dlg = new TagsDialog();
                    //this line doesn't compile
                    dlg.show(getSupportFragmentManager(), "tags");

                }
            }); …
Run Code Online (Sandbox Code Playgroud)

android dialog android-fragments android-viewpager fragmentmanager

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

为什么Maven Central上的Android版本不包含Google Apis(地图)?

大多数Android SDK的jar现在都在maven中心,但没有一个Google Api版本的SDK.你知道为什么吗 ?添加它们有什么限制吗?

更新:我不是在寻找一种解决方法(比如将它们本地添加到我的仓库).

sdk android google-maps maven

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

触摸发生时是否可以检测到指纹?

我试图在用户触摸Android设备显示屏时获取用户的指纹.有没有办法做到这一点?

像这样的东西:

指纹

谢谢.

android

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