我有我的类ClassMultiPoint与子类.
public class ClassMultiPoints
{
public String message;
public List<ClassPoints> data;
public class ClassPoints
{
public String id;
public List<ClassPoint> points;
public class ClassPoint
{
public String speed;
public String bearing;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我oPoints将从解析中获取对象的值GSON:
oPoints = gson.fromJson( jsonString, ClassMultiPoints.class);
我试着用oPoints.message.
当我运行我的应用程序没有proguard应用程序运行成功 当我用proguard我的应用程序崩溃运行我的应用程序时
我认为问题是:proguard将'oPoints.message'我的类的属性重命名为short 'a'.
我尝试保持方法和属性的名称是不变的,但proguard重命名为:
proguard.cfg:
-injars bin/classes
-injars libs
-outjars bin/classes-processed.jar
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation* …Run Code Online (Sandbox Code Playgroud) 我使用Google Translator创建应用.我尝试使用Proguard创建签名的apk.
proguard.cfg包含:
-libraryjars libs/gtranslateapi-1.0.jar
-keep class com.gtranslate.** { *; }
Run Code Online (Sandbox Code Playgroud)
proguard-project.txt包含:
-dontwarn com.gtranslate.**
Run Code Online (Sandbox Code Playgroud)
我也尝试没有proguard-project.txt:
# -dontwarn com.gtranslate.**
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Proguard returned with error code 1. See console
Error: The same input jar [C:\workspace\myproject\libs\gtranslateapi-1.0.jar] is specified twice.
Run Code Online (Sandbox Code Playgroud)
什么是不正确的?
我需要在我的WebView和WebView的所有edittexts中禁用打开软键盘(我不能访问因为它在WebView中).
我尝试在我的清单文件中使用'android:windowSoftInputMode ="stateAlwaysHidden"',但是当我点击可编辑字段时键盘弹出.
什么是在WebView中禁用软键盘的正确解决方案?
编辑:
我发现解决方案(在这篇文章中感谢@ g00dy,在/sf/answers/637575361/后感谢@Kachi )打开后关闭键盘:
public class ActivityBrowser extends Activity
{
private static WebView webviewHTML;
private static View viewRootHTML;
private static int iViewRootHTMLHeightDifferent;
public static Context contextBrowser;
{
contextBrowser = this;
}
public class webViewClient extends WebViewClient
{
@Override
public void onPageStarted( WebView view, String url, Bitmap favicon)
{
if( view == webviewHTML) super.onPageStarted( view, url, favicon);
}
@Override
public void onPageFinished( WebView view, String url)
{
if( view == webviewHTML) super.onPageFinished( view, url);
} …Run Code Online (Sandbox Code Playgroud) 我尝试将WebView添加到我的活动中:
WebView webView = new WebView(this);
Run Code Online (Sandbox Code Playgroud)
在所有设备上都可以正常工作,但是在Android Lollipop 5.1(仅)设备上,我在这一行遇到了异常:
10-18 12:04:29.741 13131-13131/xx.xxxxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: xx.xxxxxx, PID: 13131
java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxxxxx/xx.xxxxxx.activity.login.UseActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
at android.content.res.Resources.getText(Resources.java:299)
at android.content.res.Resources.getString(Resources.java:385)
at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684)
at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631)
at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:780)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:619)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:556)
at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:311)
at …Run Code Online (Sandbox Code Playgroud) 在下面的代码中Eclipse生成警告"此Handler类应该是静态的,否则可能会发生泄漏".
public class MyActivity extends Activity implements Runnable
{
final Handler handler = new Handler()
{
@Override
public void handleMessage( Message message)
{
String sResult = (String) message.obj;
if( (sResult != null) && (sResult != ""))
{
MyNonStatic = (TableLayout) findViewById( R.id.tableLayout); // any non-static method
}
return;
}
};
public void run()
{
final Message message = handler.obtainMessage( 1, MyFunction( context));
handler.sendMessage( message);
}
public String MyFunction( Context context)
{
return "MyNewString";
}
}
Run Code Online (Sandbox Code Playgroud)
我在网站上审查了很多主题,但没有得到解决方案.请帮帮我这个代码?
添加:我需要在handleMessage()中调用非静态方法(例如findViewById())!
我需要将我的应用程序创建为系统,因为我需要获得许可android.permission.WRITE_SECURE_SETTINGS。安装到虚拟设备(Eclipse)后,我的应用程序显示在中'/data/app'。我尝试手动将其移动到'/system/app',设置权限644,但是当我启动我的app-toast时'App isn't installed'。重新启动后(关闭虚拟设备并重新启动),我的应用从中消失了'/system/app'。
添加:
-1.为什么android看不到我的应用程序'/system/app'?-2.为什么在重新启动虚拟设备后我的应用消失了'/system/app'?
使我的应用系统在Eclipse Emulator和真实设备上的最佳方法是什么?
如何以编程方式获得系统中的Web浏览器列表?
更新:我知道该应用程序的哪个manifestfile必须具有属性android:scheme="http"或android:scheme="https".我知道如何获取系统中所有应用程序的列表getPackageManager().getInstalledPackages( 0);.我不知道怎么得到这个属性?
我尝试在键盘中添加自己的角色.我通过代码将键'z'扩展为"Keyboard-en.plist":
"Roman-Accent-z" = {
Keycaps = "z mylongstringtitle ..."; // ... == \U017e \U017a \U017c characters ('z' with apostrophes and dots)
Strings = "z mylongstringvalue ...";
};
Run Code Online (Sandbox Code Playgroud)
但键盘没有显示我的字符串'mylongstringtitle',只有空格'':

我只能在普通字体上添加字符串4个字符长度,在"按钮"上添加小字体上的7个字符.但我需要添加一个长字符串.
我可以在keycaps的字符串中添加'mylongstringtitle'吗?可能是我需要为长字符串设置特殊参数?这个有可能?
我将我的android项目升级到24 SDK版本.
但我在Proguard构建路径中遇到错误:
Unexpected error while evaluating instruction:
Class = [com/google/android/gms/iid/zzd]
Method = [zzeC(Ljava/lang/String;)V]
Instruction = [11] invokevirtual #50
Exception = [java.lang.ArrayIndexOutOfBoundsException] (1)
Unexpected error while performing partial evaluation:
Class = [com/google/android/gms/iid/zzd]
Method = [zzeC(Ljava/lang/String;)V]
Exception = [java.lang.ArrayIndexOutOfBoundsException] (1)
Warning: Exception while processing task java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: 1
:PC:transformClassesAndResourcesWithProguardForDebug FAILED
FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)
我的proguard.cfg文件:
-printmapping /build/proguard-mapping.txt
-printusage /build/proguard-usage.txt
-printseeds /build/proguard-seeds.txt
-printconfiguration /build/proguard-configuration.txt
-optimizationpasses 5
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-optimizations !class/unboxing/enum
-allowaccessmodification
-repackageclasses ''
-keepattributes Signature
-keepattributes SetJavaScriptEnabled
-keepattributes …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中尝试实现导航抽屉(Material Design).我的活动包含带有片段的FrameLayout.当用户在导航抽屉中选择项目时FrameLayout重新加载新片段:
listViewDrawer.setOnItemClickListener( new AdapterView.OnItemClickListener() {
@Override
public void onItemClick( AdapterView<?> parent, View view, int position, long id) {
drawerLayout.closeDrawer( listViewDrawer); // <<<-------
toolbar.setTitle( getResources().getString( R.string.title));
fragmentMain = new FragmentMain();
android.app.FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace( R.id.frameLayoutMain, ApplicationTapaKiosk.getInstance().fragmentMain)
.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击项目都工作正常.导航抽屉关闭不顺畅,但冻结(抽搐,抽搐)因为片段在后台重新加载.
导航抽屉有多接近顺畅?